Так как я видел только несколько сообщений по этой теме, но без подробного объяснения логики параметров в шаблонах для Visual Studio, я решил разместить это здесь.
Следуя статье MSDN , вы можете добавить в свой шаблон пользовательские параметры, которые можно изменить с помощью мастера , если вы хотите их изменить.
В любом файле шаблона (другой чем сам файл шаблона) вы можете добавить логику на основе параметров. В логике можно использовать только три ключевых слова. $ if $ (% выражение%), $ else $ и $ endif $. Скажем, у меня в файле шаблона есть следующее:
public string foo( string a )
{
return string.Format( @"foo( {0} );", a );
}
И мы хотим добавить логику того, хотим ли мы проверять, является ли "a" нулевым или пустым
public string foo( string a )
{
$if$ ( $shouldCheckForNullOrEmpty$ == true )
if ( !string.IsNullOrEmpty( a ) )
$endif$
return string.Format( @"foo( {0} );", a );
}
Конечно, вы можете добавить фигурные скобки для оператор if, поэтому вам может понадобиться более одного логического блока.
Это не так уж плохо, но есть несколько уловок. $ If $ проверяет соответствие строки , то есть shouldCheckForNullOrEmpty, должно быть равно «true». Также было искушение написать $ if $ ($ shouldCheckForNullOrEmpty $ == "true"), но это не сработает.
Одиночные операторы if с одиночными выражениями довольно просты, поэтому теперь рассмотрим более сложный пример:
public string foo( string a )
{
$if$ ( $parameterCheckMode$ == ifNullOrEmpty )
if ( !string.IsNullOrEmpty( a ) )
$else$ $if$ ( $parameterCheckMode$ == throwIfNullOrEmpty )
if ( string.IsNullOrEmpty( a ) )
throw new ArgumentException();
$endif$ $endif$
return string.Format( @"foo( {0} );", a );
}
Как вы, возможно, заметили, это оператор переключения для режима параметров. Вы можете заметить, что здесь нет $ elseif $, поэтому вам нужно сделать это $ else $ $ if $, но нужно будет добавить дополнительный $ endif $ в конце.
Наконец, я еще не нашел и или или символы для логики. Я обошел это, просто используя логическую эквивалентность:
и -> $ if $ (выражение1) $ if $ (выражение2) $ endif $ endif $
или -> $ if $ (выражение1) оператор $ else $ $ if $ statement $ endif $ $ endif $
Надеюсь, это кому-то поможет.
Для логики and
и or
and
это:
&&
, а or
:
||
Итак, оператор if с and
в нем будет выглядеть так:
if ((a != null)&&(a !=""))
{
Console.Write(a);
}
И оператор if с or
в это будет выглядеть следующим образом:
if ((b != null)||(b >= 5))
{
Console.Write(b);
}
Для шаблона вы можете экспортировать файл * .cs в качестве шаблона. Он находится в Project> Export Template ...
(я использовал VisualStudios 2017)
Надеюсь, это поможет.