Форматирование Литеральные параметры фрагмента кода С#
Можно ли каким-либо образом изменить способ создания Literal фрагмента кода, когда он используется в коде, который генерирует фрагмент?
В частности, я хотел бы знать, могу ли я иметь литерал, называемый say, $PropertyName $, а затем заставить механизм фрагмента отображать "_ $PropertyName $, где первый символ сделан в нижнем регистре.
Я не могу позволить себе R #. Пожалуйста, помогите:)
Ответы
Ответ 1
К сожалению, похоже, нет способа. Фрагменты предлагают удивительно ограниченную поддержку функций преобразования, как вы можете видеть.
Вы должны придерживаться стандартного решения VS, которое должно написать два литерала: один для имени свойства, а другой для имени переменной-члена.
Ответ 2
"Исправить" может быть использование префикса в именовании или переменной-члене, то есть:
string m_$name$;
string $name$
{
get{return m_$name$;}
set{m_$name$=value;}
};
Ответ 3
Вы можете ввести верхнюю первую букву, затем имя свойства, затем нижнюю первую букву. Попробуйте этот фрагмент:
<?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$> _$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>