Ответ 1
Да, это правильно. Из документа
Текстовое представление значения текущего объекта
Nullable<T>
, если свойствоHasValue
равно true или пустая строка (""
), если свойствоHasValue
является ложным.
Обратите внимание также, что Nullable<T>.Equals
и Nullable<T>.GetHashCode
не выбрасывают в этом случае, а Nullable<T>.GetType
выполняет команду throw. Это связано с тем, что Object.Equals
, Object.GetHashCode
и Object.ToString
переопределены для Nullable<T>
, но это Object.GetType
не является (поскольку оно не может быть таким, как оно не помечено как virtual
).