代码之家  ›  专栏  ›  技术社区  ›  Awaken

在visualstudio中使用字段/属性自动创建构造函数(就像Eclipse那样)

  •  10
  • Awaken  · 技术社区  · 16 年前

    如果这是一个重复,请链接(我试图搜索)。

    4 回复  |  直到 16 年前
        1
  •  7
  •   Yuriy Faktorovich    10 年前

    不,有ctor代码段(不完全是您要找的),或者您可以创建宏。可能去看看 Productivity macros for C# . 既然你不喜欢ReSharper,你可以用 CodeRush

        2
  •  10
  •   Pouya Samie    8 年前

    here

    我的回答是:

    . 然后按生成构造函数。

    更新 例如,如果高亮显示了2个特性,则建议您使用2个参数创建一个承包商;如果选择了3,则建议使用3个参数,依此类推。

    也适用于VS2017。

    enter image description here

        3
  •  8
  •   this. __curious_geek    16 年前

    你可以用 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};
          }
       }
    
        4
  •  2
  •   Josh Dean    13 年前

    这里有一个很好的解决方法:

    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. 如果将鼠标移到新的MyClass上,visualstudio应该会给您一个resolve提示,这将允许在类中使用您在步骤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,使用resolve两次,首先生成类,然后生成内部。