为什么以下行编译?对我来说,//Must remove $ and any commas
y = thisVal.replace(',','');
z = y.replace('$','');
//Error if this is not a number
if (isNaN(z))
{
thisCmp.className = thisCmp.className + " errorRed";
return
}
else
{
thisCmp.className = thisCmp.className.replace(" errorRed","");
}
//Must fix to 2 decimal places
if ((typeof z) === 'string'){
z = parseFloat(z).toFixed(2)}
else {
z = z.toFixed(2)
}
是一个结构,我们不能为这个类型的变量赋值“null”。
Nullable<double>
赋值运算符不应该是可覆盖的,但可能是一些语法糖,并且编译器知道它必须将其更改为?
Nullable<double> someVar = null;
答案 0 :(得分:4)
这是在规范上。
第6.1.5节说:
6.1.5空文字转换
存在从null文字到任何可空类型的隐式转换。此转换生成给定可空类型
的空值(第4.1.10节)
4.1.10说:
4.1.10可空类型
可空类型可以表示其基础类型的所有值加上额外的空值。可空类型写为T ?,其中T是基础类型。此语法是System.Nullable的简写,这两种形式可以互换使用。
...
隐式转换可以从空文字到T吗? (§6.1.5)和从T到T? (第6.1.4节)强>
(大胆是我的)