2017-07-01 16 views
1

こんにちは、私はVSのpropfullスニペットをたくさん使っていますが、ショートカットにはそれを含めていないので、毎回.thisを追加する必要があります。私はそれを行うスニペットを見つけることができる任意のアイデア(resharperなしのVS 2017用)。私は検索しましたが、私が見つけた最高のものはresharper版でしたが、それは私のためには機能しません。申し訳ありませんが、これはどこかに投稿されたが、私は答えを見つけることができませんでした。Visual Studio 2017 propfullスニペットwith this。

例:

ノーマルpropfull:

private int myVar; 

    public int MyProperty 
    { 
     get { return myVar; } 
     set { myVar = value; } 
    } 

希望propfull:

private int myVar; 

    public int MyProperty 
    { 
     get { return this.myVar; } 
     set { this.myVar = value; } 
    } 
+0

を作成し、あなただけのバッキングフィールドを返している場合は、あなた自身のバッキング・フィールドを作成しない、対あなたのためにそれを行いますC#6では、コンストラクタ内からそれらを設定できるように、それらを読み込み専用のバッキングフィールドとして使用することもできます(したがって、public int MyProperty {get;}を定義するだけです) – Icepickle

+0

なぜこれも必要なのですか? – Crowcoder

+0

はい私は同意します私はsetterで何らかのバリデーションをしなければならず、私はthis.someNameをよりクリーンな方法で使用することを好みます:) –

答えて

1

あなたはツールの下に、あなたは、Visual Studioで見つけることができますスニペットマネージャを使用してこれを行うことができます - >コードスニペットマネージャー...

enter image description here

私は、例えば、Microsoftのスニペットのpropfullの実装を取って、それはそうのように、プロパティの前にこれを追加するように、わずかにそれを変更:

<?xml version="1.0" encoding="utf-8" ?> 
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> 
    <CodeSnippet Format="1.0.0"> 
    <Header> 
     <Title>propfull with this</Title> 
     <Shortcut>thispropfull</Shortcut> 
     <Description>Code snippet for property and backing field</Description> 
     <Author>Icepickle</Author> 
     <SnippetTypes> 
     <SnippetType>Expansion</SnippetType> 
     </SnippetTypes> 
    </Header> 
    <Snippet> 
     <Declarations> 
     <Literal> 
      <ID>type</ID> 
      <ToolTip>Property type</ToolTip> 
      <Default>int</Default> 
     </Literal> 
     <Literal> 
      <ID>property</ID> 
      <ToolTip>Property name</ToolTip> 
      <Default>MyProperty</Default> 
     </Literal> 
     <Literal> 
      <ID>field</ID> 
      <ToolTip>The variable backing this property</ToolTip> 
      <Default>myVar</Default> 
     </Literal> 
     </Declarations> 
     <Code Language="csharp"><![CDATA[private $type$ $field$; 

    public $type$ $property$ 
    { 
    get { return this.$field$;} 
    set { this.$field$ = value;} 
    } 
    $end$]]> 
     </Code> 
    </Snippet> 
    </CodeSnippet> 
</CodeSnippets> 

あなたはこのファイルを保存することができます自分のスニペット(拡張子。スニペット)を入力し、インポートボタンを使用して自分のスニペットを追加します。その後、あなたはショートカットthispropfullを書くことができ、それが希望のスニペットすべての正直で

enter image description here

+0

ありがとう、これは私が望んでいたものです! :)あなたは素晴らしいです:) –

+0

喜んで私は助けることができます:) – Icepickle