簡體   English   中英

在Visual Studio中使用字段/屬性自動創建構造函數(就像Eclipse一樣)

[英]Automatically Create Constructor Using Fields/Properties in Visual Studio (like Eclipse does)

有沒有辦法根據像Eclipse這樣的類中的屬性自動創建類的構造函數? (沒有獲得ReSharper)。 我正在使用Visual Studio 2008(C#)。

如果這是重復,請鏈接(我嘗試搜索)。

沒有。有ctor片段(不是你想要的),或者你可以創建你的宏。 可能會查看C#的Productivity宏 既然你不喜歡ReSharper,你可以使用CodeRush

如果您使用的是C#3.0,則可以使用object initializer而不是創建構造函數。

參考我在一些例子中找到的代碼。

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

我在這里回答了這個問題:

這是我的答案:

在visual studio 2015 Update3中,我有這個功能。

只需突出顯示屬性,然后按ctrl + 然后按Generate Constructor。

更新例如,如果您突出顯示了2個屬性,則建議您創建一個包含2個參數的承包商,如果您選擇了3,則會建議使用3個參數,依此類推。

也適用於VS2017。

在此輸入圖像描述

這是一個非常好的工作:

  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上,Visual Studio應該為您提供解析提示,這將允許在類中使用您在步驟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兩次來首先生成類,然后生成內部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM