Автоматически создавать конструктор, используя поля / свойства в Visual Studio (как это делает Eclipse) - PullRequest
10 голосов
/ 22 июля 2010

Есть ли способ автоматически создать конструктор для класса на основе свойств в классе, как это делает Eclipse?(Без получения ReSharper).Я использую Visual Studio 2008 (C #).

Если это дубликат, пожалуйста, ссылку (я пробовал поиск).

Ответы [ 4 ]

8 голосов
/ 22 июля 2010

вы можете использовать object initializer вместо создания конструктора, если вы используете C # 3.0.

Ссылочный код, который я нашел в некотором примере.

   class Program
   {
      public class Student
      {
         public string firstName;
         public string lastName;
      }
      public class ScienceClass
      {
         public Student Student1, Student2, Student3;
      }
      static void Main(string[] args)
      {
         var student1 = new Student{firstName = "Bruce",
                                    lastName  = "Willis"};
         var student2 = new Student{firstName = "George",
                                    lastName  = "Clooney"};
         var student3 = new Student{firstName = "James",
                                    lastName  = "Cameron"};
         var sClass = new ScienceClass{Student1 = student1,
                                       Student2 = student2,
                                       Student3 = student3};
      }
   }
8 голосов
/ 22 июля 2010

Нет. Есть фрагмент кода (не совсем то, что вы искали), или вы можете создать свой макрос. Возможно проверить Макросы производительности для C # . А поскольку вам не нравится ReSharper, вы можете использовать CodeRush .

3 голосов
/ 09 октября 2017

Я ответил на вопрос здесь :

это мой ответ:

В Visual Studio 2015 Update3 у меня есть эта функция.

, просто выделив свойства, затем нажмите ctrl + . , а затем нажмите Generate Constructor.

UPDATE Например, если вы выделили 2 свойства, он предложит вам создать подрядчика с 2 параметрами, а если вы выбрали 3, то предложит 3 параметра и т. Д.

также работает с VS2017.

enter image description here

2 голосов
/ 24 июня 2013

Вот неплохая работа:

  1. Сделать пустой класс

    class MyClass{
    
    }
    
  2. Попытайтесь создать экземпляр объекта и проанализировать его типы переменных, которые вы хотели бы в конструкторе

    class Program{
        static void Main(string[] args){
    
            string var1 = "First variable is a string";
            int var2 = "Second variable is an int";
    
            Myclass foo = new MyClass(var1, var2);
            //this line here is the important one
        }
    }
    
  3. Visual Studio должна выдавать подсказку разрешения, если навести курсор мыши на новый MyClass, который позволит автоматически создавать конструктор и свойства в классе с любыми именами переменных, которые вы предложили на шаге 2. Результат будет следующим.

    class MyClass{
        private string var1;
        private int var2;
    
        public MyClass(string var1, int var2){
            // TODO: Complete member initialization
            this.var1 = var1;
            this.var2 = var2;
        }
    }
    

    Примечание. Вы даже можете пропустить шаг 1 и дважды использовать команду resol, чтобы сначала сгенерировать класс, а затем сгенерировать внутренности.

...