IEnumerable合同,我应该检查GetEnumerator返回null吗?

Ube*_*ace 0 c# ienumerable

假设GetEnumerator()总是返回not null 是否安全?

Sef*_*efe 5

是的,通常可以安全地假设.如果GetEnumerator返回,null则可以将其视为实现中的错误.为foreach循环生成的IL 也不执行检查.所以负担在于IEnumerable消费者,而不是消费者.