Visual Studioでゲッターとセッターを生成するにはどうすればよいですか?


226

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

しかし、良い実践についてのより明確な説明やコメントは歓迎します。

回答:


297

むしろ使用するよりもCtrl+をKXあなたはまた、単に入力することができprop、その後、ヒットTab二回。


70
同じことを生成する「propg」+タブを忘れないでください。ただし、プライベートセッターを使用します。
Andrew M

Visual C#のより有用なコードスニペットについては、msdn.microsoft.com / en-us / library / z41h7fat.aspxを参照してください
Titus

51

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

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

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


10
残念ながら、このオプションはVisual StudioのExpressエディションでは提供されていません。
Toby

12
あまりにshourtcutがある-私はこの方法をpreffer :) - CTRL + R + E
Vukasin

32

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

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

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

  • 組み合わせキーCtrl+ RCtrl+をE押すか、マウスの右ボタンをクリックします。コンテキストメニューの[ リファクタリング ] →[ フィールドのカプセル化... ]を選択し、を押しOKます。

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

  • カプセル化フィールド-プレビューリファレンスの変更 ]ダイアログ、押しボタンApply

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

  • これは結果です:

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



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


30

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

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の以前のバージョンでは、常にこのロングハンドメソッドも使用されていました。


C#の標準は、メンバー名property_の前ではなく後ろのダッシュ_propertyです。
Julen

2
@Julen-私は常に_property規約を見てきました。
Nathan DeWitt、

27

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

getおよびsetを含む変数とプロパティが生成されます。


これはもっと便利なもので、いつも忘れます
Dave Alperovich

私はXMLのシリアル化を行っており、ショーの至る所で大量のプロパティを生成しています。できれば+100億ドルの賛成票。ありがとう!編集-より良い、自動ホットキースクリプト+ ^ this = 90000以上の生産性!
2014


6

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

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


4

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

(または、周囲のクラス内でAlt+ Insを押します)。そうすれば、考えられるゲッターやセッターを生成するためのすべてのオプションを取得できます:-)


3

propfullキーワードを使用します。

プロパティと変数を生成します。

propfullエディターにキーワードを入力し、その後に2つTABのを続けます。それは次のようなコードを生成します:

private data_type var_name;

public data_type var_name1{ get;set;}

4分11秒で、スニペット 'propfull'(他のものの中でも)の使用を示すビデオ


2
回答についての詳細情報を提供してください。短い説明での回答は次の訪問者には適していません...
Kiyarash '25 / 09/25

エディターでキーワードpropfullを入力すると、private data_type var_nameのようなコードが生成されます。public data_type var_name1 {get; set;}
avinash kadu 14

「propfull」の参照を追加できますか(ここではコメントでなく、回答を編集して)?
Peter Mortensen

3

追加するだけの独自のスニペットを作成しました{get; set;}propTab不器用だと思って作りました。

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
    xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>get set</Title>
            <Shortcut>get</Shortcut>
        </Header>
        <Snippet>
            <Code Language="CSharp">
                <![CDATA[{get; set;}]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

これを使用して、PropTypeとPropNameを手動で入力してからgetTabと入力すると、getセットが追加されます。それは不思議なことではありませんが、とにかく最初にアクセス修飾子をタイプする傾向があるので、名前とタイプを完成させることもできます。


2

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

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


1

'prop'スニペットと自動プロパティに加えて、既存のフィールドを選択してプロパティ経由で公開できるリファクタリングオプションがあります(フィールドを右クリック→ リファクタリングフィールドのカプセル化...)。

また、「prop」の実装が気に入らない場合は、独自のスニペットを作成できます。さらに、ReSharperなどのサードパーティのリファクタリングツールを使用すると、さらに多くの機能を利用でき、より高度なスニペットを簡単に作成できます。余裕があれば、ReSharperをお勧めします。


最初のリンクはVisual Studio 2005 Retiredドキュメントにリダイレクトされます10のうちどれを参照しましたか?おそらく、これはVisual Studioでスニペットを使用する方法の説明です。
Peter Mortensen

1

Visual Studio 2019で、次のようにプロパティを選択します。

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

次に押す次にCtrl+r 押すCtrl+e

コードに行われる変更のプレビューを示すダイアログが表示されます。すべてが問題ないようであれば(ほとんどの場合問題ありません)、を押しOKます。


0

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

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

私はそれがかなり漠然としていることを知っていますが、チェックしてみてください。



0

最初にエクステンションを取得する(Ctrl+ Shift+X)をゲッターセッターをインストールします....

この後、変数を選択して右クリックします。コマンドパレットに移動...

そしてgetterと入力します... getメソッドとsetメソッドの生成を提案します。これをクリックして...


1
「First get Extension」とはどういう意味ですか?
Peter Mortensen

Ctrl + Shift + Xを押す必要があるのはどのコンテキストですか?
Peter Mortensen

-4

Android StudioでAlt+ Insを押すだけです。

変数を宣言した後、生成されたコードでゲッターとセッターを取得します。


Androidスタジオについて誰も質問しなかった
warzone_fz

問題は、「Visual Studioでゲッターとセッターをどのように生成できるか」です。Visual StudioAndroid Studioと同じではありません。
Peter Mortensen
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.