IEnumerable 合同,我应该检查 GetEnumerator 返回 null 吗?
IEnumerable contract, should I check for GetEnumerator returning null?
假设 GetEnumerator()
总是 return 不为空是否安全?
是的,通常可以安全地假设。如果 GetEnumerator
returns null
这可以被认为是实现中的错误。为 foreach
循环生成的 IL 也不执行检查。所以负担在IEnumerable
,而不是它的消费者。
假设 GetEnumerator()
总是 return 不为空是否安全?
是的,通常可以安全地假设。如果 GetEnumerator
returns null
这可以被认为是实现中的错误。为 foreach
循环生成的 IL 也不执行检查。所以负担在IEnumerable
,而不是它的消费者。