【发布时间】:2012-06-30 21:50:03
【问题描述】:
我有一个有趣的问题。根据MSDN产量syntax:
yield return <expression>; // yield some value
yield break; // exiting from iterator
为什么不只是:
yield <expression>; // yield some value
return; // exiting from iterator
对我来说,第二种形式会不那么冗长,但仍然与第一种形式具有相同的含义。 所以问题是 - 为什么 .NET 设计人员选择了第一种形式?什么原因可能导致这种情况?第二种形式有哪些潜在的设计问题?
【问题讨论】:
-
不那么冗长:是的,但它也更清晰吗?
-
这有什么不清楚的地方?
return部分?将新关键字投入语言并不总是会导致更清晰的方式... -
如何区分正常回报;并返回;迭代器??
-
简单 - 如果方法实现
IEnumerable-return功能为yield break,否则 - 和旧的return一样......