Veuillez expliquer pourquoi ce test réussit ?
[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);
}
Je ne comprends même pas comment ce code compile.
On dirait que chaque expression mathématique avec null renvoie Nullable<T>
(par exemple, 10 / null
est un Nullable<int>
). Mais je ne vois pas de méthodes d'opérateur dans la classe Nullable<T>
Si ces opérateurs sont extraits de int
, pourquoi la dernière assertion n'échoue-t-elle pas ?