Spiegare perché questo test è superato?Operazioni matematiche con null
[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);
}
Non capisco come questo codice compili anche.
Sembra che ogni espressione matematica con resi nulli Nullable<T>
(ad esempio 10/null
è un Nullable<int>
). Ma non vedo i metodi dell'operatore nella classe Nullable<T>
. Se questi operatori sono presi da int
, perché l'ultima asserzione non fallisce?
Nota che '==' ha regole leggermente diverse qui; se * entrambi * sono nulli, è 'vero' –
Sì, e lo stesso vale per'! = 'per quanto ne so - se uno è nullo e l'altro no, allora il risultato è' true'. – Andrei