के साथ गणित संचालन कृपया बताएं कि यह परीक्षण क्यों गुजरता है?शून्य
[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);
}
मुझे समझ में नहीं आता कि यह कोड कैसे संकलित करता है।
शून्य गणित Nullable<T>
(उदा। 10/null
Nullable<int>
) के साथ प्रत्येक गणित अभिव्यक्ति की तरह दिखता है। लेकिन मुझे ऑपरेटर विधियों को Nullable<T>
कक्षा में नहीं दिख रहा है। यदि इन ऑपरेटरों को int
से लिया जाता है, तो अंतिम दावा क्यों विफल नहीं होता है?
ध्यान दें कि '==' के पास थोड़ा अलग नियम हैं; यदि * दोनों * शून्य हैं, तो यह 'सत्य' –
हाँ है, और यह वही है जहां तक मुझे पता है - यदि कोई जानता है - और कोई दूसरा नहीं है, तो परिणाम 'सत्य' है। – Andrei