246

「生成」とは、特定の選択された (セットの) 変数に必要なコードの自動生成を意味します。

しかし、グッドプラクティスに関するより明確な説明やコメントは大歓迎です。

4

16 に答える 16

324

Ctrl+Kを使用する代わりに、XタイプpropしてからTab2 回押すこともできます。

于 2008-08-06T02:43:21.477 に答える
53

Visual Studio には、プライベート変数からプロパティを生成する機能もあります。

変数を右クリックすると、ポップアップするコンテキスト メニューで[リファクタリング] 項目をクリックし、[フィールドのカプセル化... ] を選択します。これにより、変数の getter/setter プロパティが作成されます。

多くのゲッター/セッターを作成する必要がある場合に使用するのは少し厄介であり、プライベート フィールドのすぐ下にプロパティを配置するため、私はこの手法の大ファンではありません。すべてのプライベート フィールドがグループ化されているため、この Visual Studio 機能によってクラスの書式設定が壊れます。

于 2008-08-06T02:52:02.910 に答える
41

Visual Studio 2013 Professional を使用しています。

  • インスタンス変数の行にカーソルを置きます。

    ここに画像の説明を入力してください

  • 結合キーCtrl+ RCtrl+Eを押すか、マウスの右ボタンをクリックします。コンテキスト メニューのRefactorEncapsulate Field...を選択し、 を押しOKます。

    ここに画像の説明を入力してください

  • Preview Reference Changes - Encapsulate Fieldダイアログで、ボタン を押しますApply

    ここに画像の説明を入力してください

  • これは結果です:

    ここに画像の説明を入力してください



また、プロパティを選択するためにカーソルを置きます。メニューの編集リファクタリングフィールドのカプセル化...を使用します。

于 2015-04-28T10:41:55.600 に答える
29

生成するとは、自動生成を意味しますか? それがあなたの言いたいことではない場合:

Visual Studio 2008 では、これを最も簡単に実装できます。

public PropertyType PropertyName { get; set; }

バックグラウンドで、これにより、プロパティが格納および取得される暗黙のインスタンス変数が作成されます。

ただし、プロパティにさらにロジックを入れたい場合は、そのためのインスタンス変数が必要になります。

private PropertyType _property;

public PropertyType PropertyName
{
    get
    {
        //logic here 
        return _property;
    }
    set
    {
        //logic here
        _property = value;
    }
 }

以前のバージョンの Visual Studio では、このロングハンド メソッドも常に使用されていました。

于 2008-08-06T02:31:37.990 に答える
29

「propfull」を使用してTAB2 回ヒットすることもできます。

get と set を持つ変数とプロパティが生成されます。

于 2012-07-17T10:59:35.287 に答える
6

Visual Studio 2005 以降を使用している場合は、insert snippet コマンドを使用してセッター/ゲッターを非常に高速に作成できます。

コードを右クリックし、スニペットの挿入( Ctrl+ K, X) をクリックして、リストから「prop」を選択します。

于 2008-08-06T02:35:37.547 に答える
4

ReSharper を使用している場合は、ReSharper メニュー →コード生成...に移動します。

(または、周囲のクラス内でAlt+Insを押します)、考えられる getter および/または setter を生成するためのすべてのオプションを取得します:-)

于 2009-09-28T17:56:15.003 に答える
2

Visual Studio Community Edition 2015 では、必要なすべてのフィールドを選択してCtrl+.を押すと、プロパティが自動的に生成されます。

フィールドの代わりにプロパティを使用するかどうかを選択する必要があります。

于 2017-01-06T22:04:45.530 に答える
0

私のマシンにはもう Visual Studio がインストールされていません (Linux を使用しています) が、クラス ビルダーにアクセスできるメニューのどこかにウィザードが隠されていたことを覚えています。

このウィザードを使用すると、メソッドや属性を含むすべてのクラスの詳細を定義できます。よく覚えていると思いますが、Visual Studio にセッターとゲッターを自動的に作成するオプションがありました。

かなり漠然としていますが、調べてみると見つかるかもしれません。

于 2008-08-06T02:24:29.130 に答える