请解释为什么这个测试通过?
[Test]
public void TestNullOps()
{
Assert.That(10 / null, Is.Null);
Assert.That(10 * null, Is.Null);
Assert.That(10 + null, Is.Null);
Assert.That(10 - null, Is.Null);
Assert.That(10 % null, Is.Null);
Assert.That(null / 10, Is.Null);
Assert.That(null * 10, Is.Null);
Assert.That(null + 10, Is.Null);
Assert.That(null - 10, Is.Null);
Assert.That(null % 10, Is.Null);
int zero = 0;
Assert.That(null / zero, Is.Null);
}
Run Code Online (Sandbox Code Playgroud)
我不明白这个代码是如何编译的.
看起来每个带有null返回的数学表达式Nullable<T>(例如10 / null是a Nullable<int>).但是我没有在Nullable<T>课堂上看到操作员方法.如果取消这些运算符int,为什么最后的断言不会失败?
c# ×1