IEnumerable 与 IList 中的 Null 值
为什么 IEnumerable = null 可以毫无错误地传递,但 IList=Null 却无法编译?
Why can an IEnumerable = null be passed without error but an IList=Null will not compile?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这不是真的。 您可以将 IEnumerable 或 IList 类型的变量设置为空引用,它将进行编译。
您的代码中还有其他错误。
That's not true. You can set a variable of type IEnumerable or IList to a null reference and it will compile.
There is something else in your code that is wrong.
这工作正常:
This works fine:
很难确切地知道你的意思。 您说 IEnumerable 的空引用可以“无错误地传递”。 “传递”是运行时的事情,但你说使用 IList 会出现编译错误? 听起来很困惑。 您需要向我们提供更多信息。
It's hard to know exactly what you mean. You say a null reference for an IEnumerable can be 'passed without error'. 'Passing' is a runtime thing, but you say with an IList you get a compile error? That sounds confused. You'll need to give us some more info.
好吧,对于您的具体问题,可能是因为 C# 区分大小写 -
null
是文字,但Null
不是。 鉴于您还没有发布任何可以实际编译的代码,所以很难说。如果这不是您的真实代码中的问题,请发布您的真实代码,我们将看看我们能做什么。
Well, with your exact question, it could be because C# is case-sensitive -
null
is a literal, butNull
isn't. It's hard to say given that you haven't posted any code which could actually compile though.If that's not the problem in your real code, post your real code and we'll see what we can do.