[英]What is the purpose of Yield and how does it work?
在仔细阅读推特的同时,我发现游戏开发者发了一条推文。
@ChevyRay 2:44 AM - 2016年7月5日
我给你:我写过的最愚蠢的8行代码实际上是我的游戏代码所使用的static IEnumerable<int> RightAndleft { get { yield return 1; yield return -1; } }
我立刻看着它,心里想着这是做什么的? 我确定这篇文章的意思是一个玩笑,但我只是没有得到它。 因此,我去研究了yield
但这并没有真正回答我的问题。
我想知道这里是否有人可以首先阐明它正在做什么以及为什么。
编译器将此代码转换为枚举器。 您可以使用此枚举器迭代序列{1, -1}
:
foreach(var i in ClassName.RightAndLeft)
Console.WriteLine(i);
结果是
1
-1
请注意,此属性不会有两个return语句和返回类型int
。 它返回一个IEnumerable<int>
,一个包含1
和-1
的序列。
有关更多信息,请参阅yield关键字
需要注意的一个重要部分是第二行yield return -1;
在此示例中,在Console.WriteLine
打印出第一个值之后执行。
由于海报是游戏开发者,他可能会使用这两个值作为方向指示符,这个枚举可以列举所有可能的方向或类似的东西。
它返回包含1
和-1
IEnumerable<int>
对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.