【发布时间】:2013-12-11 11:06:04
【问题描述】:
我有以下代码:
virtual public IEnumerable<string> GetSelectedIds(){
if (_kids == null)
yield return null;
foreach (var current in _kids.Nodes)
yield return current;
}
这段代码在_kids.Nodes 崩溃,NullPointerException if _kids == null
如果_kids == null,我希望此方法在前置条件级别返回,但事实并非如此!
问题
为什么方法开头的前置条件不起作用?
【问题讨论】:
-
yield return不会停止枚举 - 您应该按照金刚的建议使用yeild break -
如果
_kids == null,你会考虑返回一个空序列吗? -
@AhmedKRAIEM 是的,那应该很好。
标签: c# ienumerable yield yield-return