문제

다음과 같은 스타일의 속성을 만들었습니다 (후원 필드 포함).

private _firstName;
public string FirstName
{
    get { return _firstName; }
    set { _firstName = value; }
}

속성의 이름이 백업 필드의 이름과 유사하다는 점을 감안할 때 내장을 개선했습니다. prop 다음과 같은 스 니펫 :

<?xml version="1.0"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>prop</Title>
      <Author>Frank Rizzo</Author>
      <Description>Code snippet for property and backing field - changed one (not the original).</Description>
      <Shortcut>prop</Shortcut>
      <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$ $field$
    {
        get { return _$field$;}
        set { _$field$ = value;}
    }
    $end$
            ]]></Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

이것은 어느 정도 작동하지만 후원 필드와 속성 이름의 케이싱은 항상 동일합니다. 내 컨벤션에서와 마찬가지로 후원 필드는 낙타가 적용되며, 여기서 속성 이름은 파스칼 케이스입니다.

그래서 내 질문은 이것입니다 : 스 니펫 구문은 재산의 첫 글자를 변경하여 스 니펫이 내 컨벤션을 준수 할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

불행히도 이것은 아직 불가능합니다 (아직).

바라건대, 그것은 미래의 Visual Studio에서 가능할 것입니다.

다른 팁

<CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <Header>
    <Title>Code File Header</Title>
    <Author>Муся</Author>
    <Shortcut>codehead</Shortcut>
    <Description>Гавнокодец</Description>
    <SnippetTypes>
      <SnippetType>Expansion</SnippetType>
    </SnippetTypes>
  </Header>
  <Snippet>
    <Declarations>
      <Literal>
        <ID>Name</ID>
        <Default>Header</Default>
      </Literal>
      <Literal>
        <ID>LowerName</ID>
        <Default>header</Default>
      </Literal>
      <Literal>
        <ID>Type</ID>
        <Default>object</Default>
      </Literal>
    </Declarations>
    <Code Language="CSharp">
      <![CDATA[
        public $Type$ $Name$
        {
            get { return $LowerName$; }
            set
            {
                $LowerName$ = value;
                OnPropertyChanged("$Name$");
            }
        }
        $Type$ $LowerName$;
      ]]>
    </Code>
  </Snippet>
</CodeSnippet>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top