Как мне сгенерировать конструктор из полей класса, используя Visual Studio (и / или ReSharper)? - PullRequest
148 голосов
/ 04 июня 2010

Я привык ко многим Java IDE ( Eclipse , NetBeans и IntelliJ IDEA ), предоставляющим вам команду для создания значения по умолчаниюконструктор для класса на основе полей в классе.

Например:

public class Example
{
    public decimal MyNumber { get; set; }
    public string Description { get; set; }
    public int SomeInteger { get; set; }

    // ↓↓↓ This is what I want generated ↓↓↓
    public Example(decimal myNumber, string description, int someInteger)
    {
        MyNumber = myNumber;
        Description = description;
        SomeInteger = someInteger;
    }
}

Наличие заполнителя конструктора для всех полей объекта является такой распространенной задачей в большинстве языков ООПЯ предполагаю, что есть какой-то способ сэкономить время написания этого стандартного кода на C #.Я новичок в мире C #, так что мне интересно, упустил ли я что-то фундаментальное из этого языка?Есть ли какая-то опция в Visual Studio, которая очевидна?

Ответы [ 11 ]

0 голосов
/ 09 мая 2012

Я использую следующий трюк:

Я выбираю объявление класса с данными-членами и нажимаю:

Ctrl + C , Shift + Ctrl + C , Ctrl + V .

  • Первая команда копирует объявление в буфер обмена,
  • Вторая команда - это ярлык, который вызывает ПРОГРАММУ
  • Последняя команда перезаписывает выделение по тексту из буфера обмена.

ПРОГРАММА получает объявление из буфера обмена, находит имя класса, находит всех членов и их типы, генерирует конструктор и копирует все это обратно в буфер обмена.

Мы делаем это с первокурсниками на моей практике "Программирование-I" (Карлов университет, Прага) и большинство студентов делают это до конца часа.

Если вы хотите увидеть исходный код, дайте мне знать.

...