2010-07-22 14 views
9

¿Hay alguna forma de crear automáticamente el constructor para una clase basada en las propiedades de la clase como lo hace Eclipse? (Sin obtener ReSharper). Estoy usando Visual Studio 2008 (C#).Crear automáticamente constructor usando campos/propiedades en Visual Studio (como Eclipse)

Si es un duplicado, por favor enlace (Intenté buscar).

+2

http://stackoverflow.com/questions/2976363/how-do-i-generate-a-constructor-from-class-fields-using-visual-studio-and-or-re –

+0

Posible duplicado de [¿Cómo puedo generar un constructor de los campos de clase usando Visual Studio (y/o ReSharper)?] (Https: // stackoverflow.com/questions/2976363/how-do-i-generate-a-constructor-from-class-fields-using-visual-studio-and-or-re) –

Respuesta

8

No. Hay un fragmento de ctor (no exactamente lo que estaba buscando), o puede crear su macro. Posiblemente, marque Productivity macros for C#. Y dado que no te gusta ReSharper, puedes usar CodeRush.

+0

Solo por claridad, no soy anti-ReSharper. Simplemente no puedo conseguirlo en esta máquina ahora, así que esperaba que hubiera un camino integrado. Ese ejemplo de CodeRush es exactamente lo que estaba pensando. – Awaken

+0

El enlace de la respuesta está muerto, ¿hay alguna manera de actualizarlo? –

+1

@TolgaEvcimen ráfaga del pasado, enlace actualizado. –

7

puede usar object initializer en lugar de haber creado un constructor, si está usando C# 3.0.

Código de referencia que encontré en algún ejemplo.

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}; 
     } 
    } 
+7

Definitivamente sería una clase de ciencia llena de acción ... –

+0

El problema con este enfoque es que no puedes usarlo con campos 'readonly' (o propiedades respaldadas con campos' readonly'). – Dai

2

Aquí hay un muy buen trabajo en torno a:

  1. Hacer una clase vacía

    class MyClass{ 
    
    } 
    
  2. intenta crear una instancia del objeto y lo revisará los tipos de variables que le gustaría en el constructor

    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 debería darle un aviso de resolución si pasa el mouse sobre la nueva MyClass que permitirá una creación automática del constructor y las propiedades de la clase con los nombres de variables que ofreció en el paso 2. El resultado es el siguiente.

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

    Nota: Incluso se puede omitir el paso 1 y el uso de resolver el doble para generar en primer lugar, la clase, y luego generar las entrañas.

+0

La variable de inicialización de var1 y var2 también son importantes para el tipo de variable (cadena e int) –

+0

La mejor forma de utilizar esto para la inicialización de propiedad es de la clase misma después de que se hayan declarado las propiedades, y burlarse de una llamada a un constructor utilizando esas las propiedades se inicializarán – MatanCo

3

que respondieron a la pregunta here:

esta es mi respuesta:

En Visual Studio 2015 Update3, tengo esta característica.

simplemente resaltando propiedades y luego presione ctrl + . y luego presione Generar constructor.

ACTUALIZACIÓN Por ejemplo, si usted ha resaltado 2 propiedades que le sugerirá crear un contratista con 2 parámetros y si ha seleccionado 3 Sugerirá con 3 parámetros y así sucesivamente.

también funciona con VS2017.

enter image description here

Cuestiones relacionadas