Шаблон проекта/объекта Visual Studio Параметр Логика
Поскольку я видел только несколько сообщений по этой теме, но не дал подробного объяснения логики параметров в шаблонах для Visual Studio, я решил, что разместил бы это здесь.
После Wizard, если вы хотите их изменить.
В любом файле шаблона (кроме самого файла шаблона) вы можете добавить логику на основе параметров. С логикой можно использовать только три ключевых слова. $if $(% expression%), $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 $check для соответствия строки, то есть должен проверить, что TrueForNullOrEmpty должен равняться "true". Также было искушено писать $if $($ shouldCheckForNullOrEmpty $== "true" ), но это не сработает.
Одиночные инструкции с одиночными выражениями довольно просты, поэтому теперь для более сложного примера:
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 );
}
Как вы можете сказать, это оператор switch для режима параметров. Вы можете заметить, что нет $elseif $, поэтому вам нужно сделать $else $$ if $, но в конце вам придется добавить дополнительный $endif $.
Наконец, я еще не нашел символы и или или для логики. Я обошел это, просто используя логическую эквивалентность:
и → $if $(выражение1) $, если $(выражение2) $endif $endif $
или → $if $(expression1) statement $else $$ if $statement $endif $$ endif $
Надеюсь, это поможет кому-то.
Ответы
Ответ 1
Для логики 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)
Надеется, что это помогает.