嗨,在阅读NUnit项目的断言类的代码时,我遇到了这个特殊的构造 -
public static void AreEqual(double expected, double? actual, double delta)
{
AssertDoublesAreEqual(expected, (double)actual, delta ,null, null);
}
Run Code Online (Sandbox Code Playgroud)
在此函数中,输入第二个输入参数double?.有趣的是,这段代码在VS2010(C#4.0)中编译没有问题.任何人都知道为什么这不会引发错误?为什么被double?认为是有效的关键字,并且对此有任何特殊意义?.
Gor*_*pik 25
double?只是简写Nullable<double>; 基本上,一个double可以null.但代码不是很安全.如果actual是null,(double)actual将抛出异常.
| 归档时间: |
|
| 查看次数: |
16262 次 |
| 最近记录: |