T4模板:双模板.NaN没有正确呈现
本文关键字:NaN 模板 T4 | 更新日期: 2023-09-27 18:13:20
我有一个T4模板,它创建一系列从预定义数据集派生的static readonly
变量。
如果我传递double.NaN
作为构造函数参数,模板输出呈现为 NaN
,而不是 double.NaN
,如我所期望的。
模板的相关部分为:
<#= double.IsNaN(element.MeltingPoint) ? double.NaN : element.MeltingPoint #>
会导致编译错误:The name 'NaN' does not exist in the current context
如果我手动更改代码为double.NaN
,那么它编译得很好。
如何将输出强制读取为字面值字符串double.NaN
?
调用double.NaN.ToString()
的结果(T4引擎这样做是为了在生成的文件中打印结果)是字符串"NaN"(事实上,它是特定于区域性的)。
如果您想要字符串字面值double.NaN
,那么使用字符串字面值:
<#= double.IsNaN(element.MeltingPoint) ? "double.NaN" : element.MeltingPoint.ToString() #>
尝试使用Double.NaN。虽然我怀疑T4引擎也可能会选择这个