Ярлык для создания многих свойств с телом get / set по умолчанию - PullRequest
2 голосов
/ 21 марта 2011

Есть ли какой-нибудь быстрый способ обработки нескольких свойств в классе (скажем, 50 охватывающих строк, int, datetime и т. Д.).Все они будут иметь одно и то же простое объявление, например

private int myInt;
public int MyInt 
{ get { return myInt; }
  set { myInt = value; }
}

private datetime someDate;
public datetime SomeDate
{ get { return someDate; }
  set { someDate = value; }
}

. Причина в том, что у меня есть класс, который будет "привязан" к полям типа ввода текста и тому подобное.Просто сделать их «общедоступными» не работает, поскольку они не будут привязываться к полю, но будут работать, если это свойство с применимым get / set.Я просто думаю, что испытывать боль от таких усилий - боль, когда повторяется одно и то же много раз, и считаю, что существует более короткий / более упрощенный метод.У меня просто нет другого наставника, чтобы учиться и знать, что у S / O есть много, чтобы помочь.

В текущей ситуации я должен работать только с .Net 2.0 max.Некоторые ограничения, основанные на портативных устройствах, которые еще не поддерживают 3.0, 3.5 и т. Д.

Ответы [ 7 ]

11 голосов
/ 21 марта 2011

В C # 3 или выше вы можете использовать автоматически реализуемые свойства :

public int MyInt { get; set; }
4 голосов
/ 21 марта 2011

В VS2010 и 2008 вы можете щелкнуть правой кнопкой мыши на приватном поле, выбрать Refactor-> Encapsulate Field.

Вам все равно придется делать это поле за полем, но в нем есть некоторые смарты (счто касается выбора общедоступного имени), и вы можете делать все это без набора текста.

Продолжение: я вижу, что ответ от Джоша М показывает вам сочетание клавиш, чтобы сделать то же самое.

3 голосов
/ 21 марта 2011

Вместо использования полей используйте свойства для начала:

public int MyInt { get; set }
public DateTime SomeDate { get; set; }
3 голосов
/ 21 марта 2011

Попробуйте CTRL + R + E, находясь на поле.

Смотрите больше отличных ярлыков в этом блоге .

0 голосов
/ 01 января 2016

введите propfull, затем дважды нажмите TAB

0 голосов
/ 21 марта 2011

Вы сказали, что застряли с .NET 2.0.Обратите внимание, что вы можете использовать некоторые функции C # 3.0, но все еще нацелены на .NET 2.0 Framework.Так что, пока вы используете VS2008 и устанавливаете цель на .NET 2.0, вы можете использовать autoprops (и некоторые другие интересные функции C # 3.0).Вот несколько ссылок на эту тему:

http://weblogs.asp.net/shahar/archive/2008/01/23/use-c-3-features-from-c-2-and-net-2-0-code.aspx

http://www.danielmoth.com/Blog/Using-Extension-Methods-In-Fx-20-Projects.aspx

http://www.developer.com/net/csharp/article.php/3598381/The-New-Lambda-Expressions-Feature-in-C-30.htm

0 голосов
/ 21 марта 2011

Я не думаю, что есть какой-либо ярлык для создания полей (кроме ввода его вручную), хотя возможно создать свойства для «существующих» полей в классе. Таким образом, в этом случае вам нужно будет написать 50 полей, а затем вы можете попросить VS автоматически сгенерировать свойства для вас. Еще лучше, если у вас есть Resharper (я думаю, alt + insert сделает эту работу).

Если у вас есть список столбцов / полей и их тип, вы можете использовать CodeDom . А затем автоматически сгенерируйте весь класс со всеми полями и свойствами на основе предоставленного вами списка столбцов.

...