我有一个T4 template,它会创建一系列从预定义数据集派生的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
读取?
答案 0 :(得分:4)
调用double.NaN.ToString()
(T4引擎为了在生成的文件中打印结果而执行的操作)的结果是字符串&#34; NaN&#34; (事实上,它是文化特定的)。
如果您需要文字字符串double.NaN
,请使用字符串文字:
<#= double.IsNaN(element.MeltingPoint) ? "double.NaN" : element.MeltingPoint.ToString() #>
答案 1 :(得分:-1)
尝试使用Double.NaN。虽然我怀疑T4引擎也可能会选择它。