2012-01-17 6 views
9

VS2010 C#では、クラスにctorと入力してタブを押すと、そのクラスのコンストラクタが作成されます。とても便利。変数を使用してコンストラクタを作成するためのショートカット

しかし、私のすべての変数、プロパティなどでVSがコンストラクタを作成する方法はありますか?

例えば、

public class User 
{ 
    public String UserName { get; private set; } 
} 

そして、このために、私は+ タブ ctorのは、私が何を参照していることはコードスニペットと思い

public User(string UserName) 
{ 
    this.UserName = UserName; 
} 
+4

なぜ.NET命名規則に違反するコンストラクタを作成したいですか? –

+0

@ Markus - 生成クライアントで新しいスタイルのオブジェクトコンストラクタを使用することを検討しましたか? –

+1

@Garry Vassいいえ、私はそれが何であるか分かりません。 – Markus

答えて

4

おかげで私は別のstackoverflowの答えを見つけるために管理:Snippet code to create constructor in VS2010 Express

をそして答えはない任意のプラグイン/拡張せずに、NOではありませんように思えます。 多くは、ReShaper拡張機能を指します。

10

を作りたいです。独自のコードスニペット(XMLで記述されています)を記述することができます。開始点については、hereを参照してください。

また、既存のコードスニペット(ctorなど)を編集することもできます。これに関するいくつかの方向については、MSDNを参照してください。

注:コードスニペットのGoogle検索でさらにチュートリアルや参考文献が表示されます。

+2

コードスニペットありがとうございますが、答えはノーと思われます...このような高度なスニペットを作成することはできません。 – Markus

14

あなたは一種の他の方法の周りにこれを行うことができます参照してください。 コンストラクタまたはフィールドなしで開始し、存在しないコンストラクタを使用しようとすると、ctrl + を押すことができます。利用まず、あなたのための1つを生成することを依頼する:必要に応じて

public class User 
{ 
    private string username; 

    public User(string username) 
    { 
     // TODO: Complete member initialization 
     this.username = username; 
    } 
} 

あなたは、おそらく(手動でこれを修正することができます

enter image description here

このコンパイラはその後、あまりにも非類似ではない何かを生成し、組み込みリネームリファクタを使用するなど)。しかし、かなりあなたが望むものではありません。サミュエル・スレイド(それは、コード・スニペットと呼ばれる私に言って)へ

+0

私はこのようなスニペットが必要な理由は、私は非常に多くのプロパティを持っていると、私は1つ持っていれば、仕事を大幅に高速化するだろう。 – Markus

1

他にも触れたように、インテリジェントなスニペットを作成することはできません。

あなたが望むことができるCometと呼ばれる無料のビジュアルスタジオアドインがあります。 http://cometaddin.codeplex.com/

2

"ctor"コードスニペットは空のコンストラクタのみを作成しますが、このコンストラクタのクラスの既存の属性は使用しません。

しかし、Resharperの最新バージョンでは、コンストラクタに含めるフィールドを選択することができます(これは、以前はEclipseのようでした)。

1

あなたはReSharperのを使用している場合、ショートカットは、これはあなたがクラスで定義されたフィールドに基づいて生成された引数を持つコンストラクタを作成できるようになります ctorf Alt+Insert

Source

+1

甘い、私は実際にResharperを使用しているので、私のために働く! (しかし、あなたはそれを持っていなければならないので、私は解決策としてマークしません。多くの人は知りません) – Markus

+0

以前このShorcutを使用していましたが、今はVisual Studioを再インストールします。私はResharperをインストールしたことがありません。 –

+0

あなたのVSにデフォルトでResharperショートカットがあることを確認してください –

0

です。

+1

私はVS2017をテストしませんが、これはReSharperのスニペットではありませんか? – Markus

+1

あなたが正しい。あなたがresharperを持っているかどうかを知っているので、ここにそれを残す。 – dirtyw0lf

関連する問題