首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >前瞻设计思想

前瞻设计思想
EN

Stack Overflow用户
提问于 2012-03-23 22:58:52
回答 2查看 167关注 0票数 0

可能重复:

Why does .NET foreach loop throw NullRefException when collection is null?

如果目标集合为null,foreach迭代器将抛出异常。

示例:

代码语言:javascript
复制
List<string> names = null;
foreach(var name in names) { /* throws exception */ }

它背后的设计思想是什么?不迭代循环而不是.NET框架抛出异常不是很方便吗?

EN

回答 2

Stack Overflow用户

发布于 2012-03-23 23:06:08

通常,空集合表示集合无效。我希望一个空集合不会迭代,但是当我期望一个有效的集合时,空集合会被看作是异常。

Why does .NET foreach loop throw NullRefException when collection is null?

票数 2
EN

Stack Overflow用户

发布于 2012-03-23 23:06:54

我想这背后根本就没有什么概念。如您所知,foreach被添加了很久之后,枚举器和foreach就建立在它之上(*)。

(*) foreach在某种程度上相当于:

代码语言:javascript
复制
var enumerator = someList.GetEnumerator();
while (enumerator.MoveNext())
{
    //do something with enumerator.Current
}

不能对null的内容运行GetEnumerator

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9847528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档