【发布时间】:2012-04-22 07:11:26
【问题描述】:
考虑以下带有 TimeSpan 的代码,它是一个结构体:
// will not compile - illegal
TimeSpan ts = null;
但是,以下代码确实可以编译并且是合法的,尽管表达式总是错误的:
if (ts == null)
Console.WriteLine("this line will never be hit");
谁能告诉我为什么将结构设置为 NULL 是无效的,但可以将其与一个进行比较?
【问题讨论】:
-
如果你无法将结构与 null 进行比较,你会如何处理 Nullable
? -
@AnthonyPegram:更好的问题是;您将如何将
Nullable<T>实现为struct? (当然,你不能)。Nullable<T>当然可以实现为引用类型 -
@EdS。但是
Nullable<T>是一个结构体。 -
@phoog:对,这就是我的意思:)