質問

コードスニペットが生成するコードで使用される場合、コードスニペットのリテラルのレンダリング方法を変更する方法はありますか?

具体的には、たとえば$ PropertyName $というリテラルがあり、スニペットエンジンが最初の文字を小文字にする" _ $ PropertyName $をレンダリングできるかどうかを知りたいです。

R#を買う余裕はありません。助けてください:)

役に立ちましたか?

解決

残念ながら、方法はありません。スニペットは、変換関数のサポートを驚くほど限定的に提供します見ることができます。

VS標準ソリューションに固執する必要があります。VS標準ソリューションでは、2つのリテラルを記述します。1つはプロパティ名用で、もう1つはメンバー変数名用です。

他のヒント

a「修正」ネーミングまたはメンバー変数にプレフィックスを使用する場合があります。例:

string m_$name$;
string $name$
{
 get{return m_$name$;}
 set{m_$name$=value;}
};

最初の文字を上、次にプロパティ名、下の文字を入力できます。このスニペットを試してください:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <Header>
    <Title>Notifiable Property</Title>
    <Author>Nikolay Makhonin</Author>
    <Shortcut>propn</Shortcut>
    <Description>Property With in Built Property Changed method implementation.</Description>
    <SnippetTypes>
      <SnippetType>SurroundsWith</SnippetType>
      <SnippetType>Expansion</SnippetType>
    </SnippetTypes>
  </Header>
  <Snippet>
    <Declarations>
        <Literal>
            <ID>Type</ID>
            <Default>Type</Default>
        </Literal>
        <Literal>
            <ID>P</ID>
            <Default>P</Default>
        </Literal>
        <Literal>
            <ID>roperty</ID>
            <Default>ropertyName</Default>
        </Literal>
        <Literal>
            <ID>p</ID>
            <Default>p</Default>
        </Literal>
        <Literal>
            <ID>Ownerclass</ID>
            <ToolTip>The owning class of this Property.</ToolTip>
            <Function>ClassName()</Function>
            <Default>Ownerclass</Default>
        </Literal>
    </Declarations>
    <Code Language="CSharp">
      <![CDATA[#region $P$roperty$

        private Field<$Type<*>gt; _$p$roperty$;
        public static readonly string $P$roperty$PropertyName = GetPropertyName(() => (($Ownerclass$)null).$P$roperty$);
        public $Type$ $P$roperty$
        {
            get { return _$p$roperty$; }
            set { Set(ref _$p$roperty$, value); }
        }

        #endregion

]]>
    </Code>
  </Snippet>
</CodeSnippet>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top