2014-10-02 23 views
0

可以VS 2012專業生成一個沒有任何插件的類構造函數嗎?VS 2012可以生成類構造函數嗎?

我不能相信我無法找到這樣做的選項,如果不能做到這一點,它確實是一個陰謀:)

我有我的類中定義:

public class User 
{ 
    public int Id {get;set;} 
    public string Name {get;set;} 
} 

現在有一個快捷方式會產生構造函數,toString()方法等?

+0

自動生成? – BradleyDotNET 2014-10-02 19:43:29

+0

Re-sharper可以做到這一點...但視覺工作室沒有這種選擇。 – 2014-10-02 19:44:57

+0

@BradleyDotNET是的,我已經更新了我的問題,以澄清我所要求的。 – 2014-10-02 19:45:09

回答

0

snippets內置,你可以添加自己的。 ctor會做構造函數,我不認爲ToString有什麼用,儘管你只需鍵入override,就可以從列表中選擇它並將它存儲。

-1

「ctor」片段會生成一個構造函數,但不帶參數。爲了得到它們,你不幸會使用(免費或不可用)插件。這個問題已經被討論過,例如參見Shortcut for creating constructor with variables (C# VS2010)

我認爲沒有直接的意思在裸露的Visual Studio中生成參數化構造函數。

編輯:我應該在我的最後一句之後添加「......嚴格適用於當前在類中定義的屬性和字段」。但是,是的,遵循彼得的建議,可以生成一種參數化的構造函數。

+1

另一個問題的詳細信息,它*是*可能的,並且早在2010年就有文檔記錄http://msdn.microsoft.com/zh-cn/library/dd409796(v=vs.100).aspx – 2014-10-02 20:08:12

+0

@PeterRitchie不同意。 「生成使用」並非嚴格意義上的「在位生成構造函數」:參數順序和名稱與類中現有的道具和字段不匹配!很高興提及它,因爲它可能有幫助,但是這種解決方案遠不如R#ctor一代高效。 – AFract 2014-10-02 20:13:40

+0

問題只規定「生成類構造函數」... – 2014-10-02 20:21:12

3

如果你需要一個默認構造函數,那麼它就是code snippet ctor


但是如果你需要一個帶參數的構造函數,然後在你的代碼寫:

User user = new User(2, "Name"); 

這將是一個錯誤,因爲有兩個參數沒有構造函數,但你會得到下一個藍色的如果您將鼠標懸停在的new User之上,則會顯示此行。點擊它或者把你的光標放在User並按Ctrl + .它會給你一個選項,以生成構造函數,如:

enter image description here

這會給你與像場構造:

public class User 
{ 
    private int p1; 
    private string p2; 

    public User(int p1, string p2) 
    { 
     // TODO: Complete member initialization 
     this.p1 = p1; 
     this.p2 = p2; 
    } 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

然後您必須進入並刪除p1,p2並指向Id,Name,並且還在構造函數中重命名參數。這可能是最好的,你可以用只有視覺工作室。

參見:Generate From Usage - MSDN(感謝@Peter裏奇)


考慮安裝重新沙坡它有generating not only constructor但其他非常有用的代碼更好的選擇。

+0

參見http://msdn.microsoft.com/en-us/library/dd409796(v=vs.100) .aspx – 2014-10-02 20:08:45

+0

@PeterRitchie,這是非常有用的鏈接。 – Habib 2014-10-02 20:12:09

+0

謝謝,但它好像vs.net的設計實際上沒有代碼。我不想寫出那行只是爲了生成一個構造函數。當然,它也有很好的選擇,但是當我創建一個類時,我想生成一個完整的構造函數! – 2014-10-02 20:12:13

相關問題