【发布时间】:2019-03-12 23:05:48
【问题描述】:
假设我们有以下代码:
public IEnumerator FirstTest()
{
yield return 1;
}
public IEnumerable SecondTest()
{
yield return 1;
}
我知道代码没有逻辑,但它是有效的,那么为什么“yield”可以返回不同的类型,FirstTest 返回一个 IEnumerator,SecondTest 返回一个 IEnumerable? IEnumerator和IEnumerable之间没有继承关系
【问题讨论】:
-
别忘了编译器很聪明。从
IEnumerator中获取IEnumerable有明显、简单且通用的解决方案。