12
votes

Créer automatiquement le constructeur à l'aide de champs / propriétés dans Visual Studio (comme Eclipse fait)

Y a-t-il un moyen de créer automatiquement le constructeur d'une classe basée sur les propriétés de la classe comme Eclipse? (Sans obtenir du resharper). J'utilise Visual Studio 2008 (C #).

S'il s'agit d'un duplicata, veuillez le lien (j'ai essayé de chercher).


4 Réponses :


7
votes

non. Il y a l'extrait cors (pas tout à fait ce que vous recherchiez), ou vous pouvez créer votre macro. Vérifiez peut-être Macros de productivité pour C # . Et puisque vous n'aimez pas Resharper, vous pouvez utiliser CODERUSH .


2 commentaires

Juste pour la clarté, je ne suis pas anti-resharper. Je ne peux tout simplement pas le faire sur cette machine maintenant, alors j'espérais qu'il y avait une manière intégrée. Cet exemple de Coderush est exactement ce que je pensais.


Le lien de la réponse est mort, y a-t-il un moyen de rafraîchir peut-être?



8
votes

Vous pouvez utiliser initialiszer code> au lieu d'avoir créé un constructeur, si vous utilisez C # 3.0.

référence de code que j'ai trouvé dans certains exemples. P>

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


1 commentaires

Le problème avec cette approche est que vous ne pouvez pas l'utiliser avec des champs lisonly (ou des propriétés sauvegardées avec lisonly champs).



2
votes

Voici un très bon travail autour de:

  1. faire une classe vide p> XXX PRE> LI>

  2. Essayez de créer une instance de l'objet et analysez les types de variable que vous souhaitez dans le constructeur p> XXX PRE> LI>

  3. Visual Studio devrait vous donner une invite de résolution si vous souris sur la nouvelle myClass qui permettra une création automatique du constructeur et des propriétés de la classe avec les noms de variable que vous avez offerts à l'étape 2. Le résultat est le suivant. p>

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


2 commentaires

L'initialisation variable de Var1 et Var2 est également importante pour le type variable (chaîne et int)


La meilleure façon d'utiliser cela pour l'initialisation de la propriété est de la classe elle-même après que les propriétés ont été déclarées, puis se moquent d'un appel à un constructeur à l'aide de ces propriétés seront initialisées.



11
votes

J'ai répondu à la question ici :

C'est ma réponse:

dans Visual Studio 2015 Update3, j'ai cette fonctionnalité.

Juste en mettant en surbrillance Propriétés, puis appuyez sur CTRL + . puis appuyez sur Constructeur générateur.

mise à jour Par exemple, si vous avez mis en surbrillance 2 propriétés, cela vous suggérera de créer un entrepreneur avec 2 paramètres et si vous avez sélectionné 3, il vous suggérera de 3 paramètres et ainsi de suite.

fonctionne aussi avec VS2017.

 Entrez la description de l'image ici


0 commentaires