2010-07-22 8 views
9

C'è un modo per creare automaticamente il costruttore per una classe basata sulle proprietà nella classe come fa Eclipse? (Senza ottenere ReSharper). Sto usando Visual Studio 2008 (C#).Crea automaticamente Costruttore utilizzando Campi/Proprietà in Visual Studio (come fa Eclipse)

Se si tratta di un duplicato, si prega di collegamento (ho provato a cercare).

+2

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

+0

Possibile duplicato di [Come posso generare un costruttore dai campi delle classi utilizzando Visual Studio (e/o ReSharper)?] (Https: // StackOverflow.it/questions/2976363/how-do-i-generate-a-constructor-from-class-fields-using-visual-studio-and-or-re) –

risposta

8

No. C'è lo snippet di codice (non proprio quello che stavi cercando), oppure puoi creare la tua macro. Forse controlla Productivity macros for C#. E poiché non ti piace ReSharper, puoi usare CodeRush.

+0

Solo per chiarezza, non sono anti-ReSharper. Non riesco a metterlo su questa macchina ora, quindi speravo che ci fosse un sistema integrato. Questo esempio di CodeRush è esattamente quello che stavo pensando. – Awaken

+0

Il link sulla risposta è morto, c'è un modo per aggiornarlo? –

+1

@TolgaEvcimen esplosione dal passato, collegamento aggiornato. –

7

è possibile utilizzare object initializer invece di creare un costruttore, se si utilizza C# 3.0.

Codice di riferimento che ho trovato in alcuni esempi.

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

Questa sarebbe sicuramente una classe di scienza piena di azione ... –

+0

Il problema con questo approccio è che non puoi usarlo con i campi 'readonly' (o le proprietà supportate dai campi' readonly'). – Dai

2

Ecco un buon lavoro intorno:

  1. Fai una classe vuota

    class MyClass{ 
    
    } 
    
  2. tenta di creare un'istanza dell'oggetto e analizzarlo i tipi di variabili che si desidera nel costruttore

    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 dovrebbe fornire una richiesta di risoluzione se si passa il mouse sulla nuova MyClass che consentirà una creazione automatica del costruttore e delle proprietà nella classe con qualsiasi nome di variabile offerto nel passaggio 2. Il risultato è il seguente.

    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: Si potrebbe anche saltare la fase 1 e utilizzare risolvere due volte per generare in primo luogo la classe, quindi generare le interiora.

+0

L'inizializzazione variabile di var1 e var2 sono importanti anche per il tipo di variabile (string e int) –

+0

Il modo migliore per utilizzare questo per l'inizializzazione della proprietà è dalla classe stessa dopo che le proprietà sono state dichiarate, quindi una chiamata a un costruttore con tali le proprietà saranno inizializzate – MatanCo

3

ho risposto alla domanda here:

questa è la mia risposta:

In Visual Studio 2015 Update3, ho questa funzione.

semplicemente evidenziando le proprietà e quindi premere ctrl + . e quindi premere Genera costruttore.

UPDATE Per esempio, se avete evidenziato di 2 immobili che ti suggerisce di creare un imprenditore con 2 parametri e se avete selezionato 3 suggerirà con 3 parametri e così via.

funziona anche con VS2017.

enter image description here

Problemi correlati