在IEnumerable和IList中为空

时间:2009-03-09 20:49:35

标签: c# .net generics list-comparison

为什么可以在没有错误的情况下传递IEnumerable = null但是IList = Null将无法编译?

4 个答案:

答案 0 :(得分:1)

那不是真的。您可以将IEnumerable或IList类型的变量设置为空引用,它将进行编译。

您的代码中还有其他内容是错误的。

答案 1 :(得分:0)

这很好用:

IList<int> Foo() {
    return null;
}

答案 2 :(得分:0)

很难确切地知道你的意思。你说IEnumerable的空引用可以“无错误地传递”。 '传递'是一个运行时的东西,但你说IList你得到一个编译错误?这听起来很混乱。您需要向我们提供更多信息。

答案 3 :(得分:0)

嗯,问题确切,可能是因为C#区分大小写 - null是文字,但Null不是。{{1}}。鉴于您没有发布任何可以实际编译的代码,很难说。

如果您的真实代码中没有问题,请发布您的真实代码,我们会看到我们可以做些什么。