我有一个包含三个 .NET Core 2 项目的解决方案。在每个项目中,我都有几个 .tt T4 模板。
我正在寻找一种巧妙的方法来一次转换所有模板,并找到了Transform All Templates -Command。
不幸的是,该命令什么也不做。如果我在我的解决方案中执行它,输出会显示:
Transforming templates for all project items.
-------------------------------------
-------------------------------------
Text templating transformation complete.
Run Code Online (Sandbox Code Playgroud)
但是在我检查我的模板后,它们没有更新。如果我转到一个模板文件并保存它,它总是会转换,但只有这个模板。我有 20 个模板,不想单独访问每个文件。
任何想法,为什么命令不起作用?
我想写一个通用函数,它接收一个列表作为参数.如果列表为null,则应返回null.如果列表包含有效项,则应返回第一项.该函数应该适用于所有原始数据类型,如int,short,float,double等...
在我的例子中,我使用int:
var a = new List<int>();
a.Add(3);
Foo<int, int?>(a);
Foo<int, int?>(null);
private T Foo<G, T>(List<G> list)
{
if(list != null && list.Count > 0)
{
return list[0];
}
else
{
return default(T);
}
}
Run Code Online (Sandbox Code Playgroud)
遗憾的是,这不起作用,因为我没有找到一个通用约束,证明编译器,那个int?可以转换为int和short吗?简短等...我只想用原始数据类型及其可空挂件和字符串来调用函数.
有关其他解决方案的任何想 :-)
编辑:
它也应该与字符串一起使用.否则Rene Vogts解决方案将起作用.