2017-07-02 9 views
0

私はクラスにプライベートフィールドがあるとします。プロパティを使ってフィールドをカプセル化するようにVisual Studioに指示すると、getおよびsetアクセサのラムダ式が出力されます。Visual Studio 2017プロパティの生成時にラムダを避ける

namespace MyNamespace 
{ 
    public class MyClass 
    { 
    private bool isActive; 

    //Auto-Generated Property 
    public bool IsActive 
    { 
     get => isActive; 
     set => isActive = value; 
    } 
    } 
} 

しかし、私はむしろ各アクセサのための中括弧のペアを持っています。

namespace MyNamespace 
{ 
    public class MyClass 
    { 
    private bool isActive; 

    //Auto-Generated Property 
    public bool IsActive 
    { 
     get 
     { 
     return isActive; 
     } 
     set 
     { 
     isActive = value; 
     } 
    } 
    } 
} 

どのように動作を変更できますか? "C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC#\ Snippets \ 1033 \ Refactoring" しかし、私が望む動作を得るためにそれらを変更する方法を理解することはできません。

+2

これらはラムダではありません。これは、プロパティのgetterとsetterを宣言するための単なる新しい構文です。それは良いです。あなたはそれを望むべきです。 –

+2

VS 2017のバージョンは「15」です。それらは間違ったスニペットです。 –

+0

なぜプライベートフィールドがあるのですか?コンパイラに仕事をさせてください:) – stuartd

答えて

0

これは私が探していたものです。興味深いのは、既にプライベートフィールドを持っている場合、Visual Studioは最初から開始する場合とは異なる(新しい)構文でパブリックプロパティを生成する方法です。

Shortcut to create properties in Visual Studio?

私はバッキングフィールドとパブリックプロパティを作成し、自分のコードスニペットを作成するには、このコードスニペットを使用していました。しかしパブリックプロパティでは、私はWPFでMVVMをやっているのでRaisedPropertyChanged()メソッド呼び出しを追加しました。このショートカットを使ってObservableObjectsのプロパティを簡単に作成したいと思っています。私の究極の目標が何であるかについて私の質問は明確ではありませんでした。

<?xml version="1.0" encoding="utf-8" ?> 
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> 
    <CodeSnippet Format="1.0.0"> 
     <Header> 
      <Title>obsprop</Title> 
      <Shortcut>obsprop</Shortcut> 
      <Description>Code snippet for property and backing field for observable object</Description> 
      <Author>Microsoft Corporation</Author> 
      <SnippetTypes> 
       <SnippetType>Expansion</SnippetType> 
      </SnippetTypes> 
     </Header> 
     <Snippet> 
      <Declarations> 
       <Literal> 
        <ID>type</ID> 
        <ToolTip>Property type</ToolTip> 
        <Default>string</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 $field$;} 
     set 
     { 
      $field$ = value; 
      RaisePropertyChanged(); 
     } 
    } 
    $end$]]> 
      </Code> 
     </Snippet> 
    </CodeSnippet> 
</CodeSnippets> 
関連する問題