Я столкнулся с этим во время отладки некоторых модульных тестов, которые сравнивали возвращенный одиночный массив с ожидаемыми результатами.
System.Single.NaN == System.Single.Nan;
Модульный тест ожидал истинного, но это оценивается как ложное. Почему это оценивается как false, когда другие статические методы single возвращают true? Разве NaN не является постоянной величиной?
System.Single.MaxValue == System.Single.MaxValue;
System.Single.Epsilon == System.Single.Epsilon;
null == null;
http://msdn.microsoft.com/en-us/library/system.single.nan.aspxутверждает :«Два значения NaN считаются неравными друг другу». но этот вопрос из любопытства, почему это так больше, чем что-либо еще.