我还没有找到任何关于在C#中使用JUST yield的信息(当用于生成器时)。 这是因为C#始终使用yield with 返回? (yield return Object)
我认为自己今天在python中学习相同的主题(生成器)时也感到困惑,而且到目前为止,我只看到了Python中单独使用的收益...
答案 0 :(得分:1)
yield
关键字,以便更轻松地实现iteartion。另一方面,它有一些不足之处。我们先来看看yield关键字。
public IEnumerable GetPowersofTwo()
{
for (int i = 1; i < 10; i++)
yield return (int)System.Math.Pow(2, i);
yield break;
}
这只是一种C#语言功能。在编译期间,编译器将yield方法及其类转换为IEnumerable
和IEnumerator
实现类的实例。
批评关键字yield
yield
有一些缺点,首先它旨在简化迭代的实现。但它可以用来编写非常恶劣的设计代码(如goto)。但是将其用于预期目的之外将使您的代码难以遵循。第二个问题是“屈服”在面向对象的范例中没有意义,就像委托一样。