Ответов (16)16
Используйте propfull
ключевое слово.
Он сгенерирует свойство и переменную.
Введите ключевое слово propfull
в редакторе, а затем два TABs. Он сгенерирует такой код:
private data_type var_name;
public data_type var_name1{ get;set;}
Видео, демонстрирующее использование фрагмента propfull (среди прочего), 4 мин 11 сек.
Я создал свой собственный сниппет, который только добавляет {get; set;}
. Я сделал это просто потому, что нахожу prop
→ Tabнеуклюжим.
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>get set</Title>
<Shortcut>get</Shortcut>
</Header>
<Snippet>
<Code Language="CSharp">
<![CDATA[{get; set;}]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
При этом вы вводите свои PropType и PropName вручную, затем набираете get
→ Tab, и он добавит набор get. В этом нет ничего волшебного, но поскольку я все равно сначала набираю модификатор доступа, я могу закончить имя и тип.
Я использую Visual Studio 2013 Professional.
- Поместите курсор в строку переменной экземпляра.
- Нажмите комбинацию клавиш Ctrl+ R, Ctrl+ Eили щелкните правой кнопкой мыши. Выберите контекстное меню Refactor → Encapsulate Field ... и нажмите OK.
- В диалоговом окне Предварительный просмотр изменений ссылки - инкапсулировать поле » нажмите кнопку Apply.
- Это результат:
Вы также устанавливаете курсор для выбора свойства . Используйте меню Правка → Рефакторинг → Инкапсулировать поле ...
Дополнительная информация:
Начиная с C# 3.0 (19 ноября 2007 г.), мы можем использовать автоматически реализуемые свойства (это просто синтаксический сахар ).
А также
private int productID; public int ProductID { get { return productID; } set { productID = value; } }
становится
public int ProductID { get; set; }
От имени инструмента Visual Studio мы можем легко генерировать свойства C# с помощью онлайн-инструмента, называемого генератором свойств C#.
В Visual Studio также есть функция, которая генерирует свойство из частной переменной.
Если щелкнуть переменную правой кнопкой мыши, в появившемся контекстном меню щелкните элемент «Рефакторинг», а затем выберите Инкапсулировать поле ... . Это создаст свойство получателя / установщика для переменной.
Я не слишком большой поклонник этой техники, так как ее немного неудобно использовать, если вам нужно создать много геттеров / сеттеров, и она помещает свойство непосредственно под частное поле, что меня беспокоит, потому что я обычно все мои частные поля сгруппированы вместе, и эта функция Visual Studio нарушает форматирование моего класса.
В дополнение к сниппету 'prop' и автоматическим свойствам существует опция рефакторинга, позволяющая выбрать существующее поле и раскрыть его через свойство ( щелкните правой кнопкой мыши поле → Рефакторинг → Инкапсулировать поле ... ).
Кроме того, если вам не нравится реализация prop, вы можете создавать свои собственные сниппеты. Кроме того, сторонний инструмент рефакторинга, такой как ReSharper , предоставит вам еще больше возможностей и упростит создание более сложных фрагментов. Я бы порекомендовал ReSharper, если вы можете себе это позволить.
http://msdn.microsoft.com/en-us/library/f7d3wz0k(VS.80).aspx
Видео, демонстрирующее использование сниппета prop (среди прочего), длительность 3 мин 23 сек.
Под генерацией вы имеете в виду автоматическое создание? Если вы не это имеете в виду:
В Visual Studio 2008 есть самая простая реализация для этого:
public PropertyType PropertyName { get; set; }
В фоновом режиме это создает подразумеваемую переменную экземпляра, в которой сохраняется и извлекается ваше свойство.
Однако, если вы хотите добавить больше логики в свои свойства, вам понадобится переменная экземпляра для нее:
private PropertyType _property;
public PropertyType PropertyName
{
get
{
//logic here
return _property;
}
set
{
//logic here
_property = value;
}
}
Предыдущие версии Visual Studio всегда использовали этот метод от руки.
На моем компьютере больше не установлена Visual Studio (и я использую Linux), но я помню, что где-то внутри одного из меню был спрятан мастер, который давал доступ к построителю классов.
С помощью этого мастера вы можете определить детали всех ваших классов, включая методы и атрибуты. Если я хорошо помню, была опция, с помощью которой вы могли попросить Visual Studio автоматически создать сеттеры и геттеры.
Я знаю, что это довольно расплывчато, но проверьте это, и вы можете это найти.