Для C# я очень не хочу выписать переменные и затем выписать все свойства. Нет ли способ выбрать все переменные, щелкнуть правой кнопкой и создать все свойства.
Вам нужен инструмент для рефакторинга кода? Если да, попробуйте ReSharper . Он позволяет легко преобразовать простые свойства с полями в автоматические свойства и наоборот.
Если вы просто не хотите писать настраиваемые свойства с поддержкой полей, вы можете использовать авто-свойства , например, например:
public string MyProperty { get; set; } // generates an auto-property
, что эквивалентно:
private string m_MyProperty;
public string MyProperty
{
get { return m_MyProperty; }
set { m_MyProperty = value; }
}
Вы даже можете сделать доступность установщика и получателя разницей:
public string MyProperty { get; private set; }
Если вы решите использовать автоматические свойства, имейте в виду, что вы не можете получить доступ к базовому полю и не можете предоставить реализацию только для одной части (только геттер или просто сеттер). Однако вы можете сделать это свойство виртуальным.
Вам, вероятно, следует использовать автоматически реализуемые свойства в C # для большинства вещей. Однако, если вам нужны свойства «старого стиля» с явными поддерживающими полями, вы можете создать фрагмент кода Visual Studio, чтобы упростить их написание. В этом сообщении блога есть пример такого сообщения.
Почему вы не делаете:
public int SomeProperty { get; set; }
или
public int SomeOtherProperty { get; private set; }
?
Если вы используете C # 3.0 или выше (VisualStudio 2008, по сути), вы можете использовать авто свойства. Хотя это не совсем то, о чем вы просите, это должно (надеюсь) помочь.
Вместо того, чтобы писать:
private string m_Name;
public string Name
{
get { return m_Name; }
set { m_Name = value; }
}
Вы можете просто написать:
public string Name { get; set; }
Это даст вам быстрые, «тупые» (т.е. без логики извлечения или присваивания) свойства, которые можно использовать в вашем классе. Если вы обнаружите, что вам понадобится логика извлечения и назначения позже, просто вернитесь и выполните полный синтаксис объявления свойства, и вам не придется изменять какой-либо вызывающий код.
Единственное реальное отличие состоит в том, что вам придется использовать свойство, чтобы получить значение в вашем классе, так как поддерживающая переменная создается и во время компиляции и недоступна для вашего кода.
К вашему сведению, простой ввод "prop" (без кавычек) запускает один из фрагментов, поставляемых с VS, и вы просто переходите через табуляцию, безусловно, самый быстрый вариант.
Щелкните правой кнопкой мыши на объявлении поля, меню Refactor -> Encapsulate field и вы перейдете от
int n;
к
int n;
public int N
{
get { return n; }
set { n = value; }
}