c# – “yield关键字”在迭代器块之外是否有用?
发布时间:2020-12-15 03:59:20 所属栏目:百科 来源:网络整理
导读:yield关键字文档说: The yield keyword signals to the compiler that the method in which it appears is an iterator block. 我在任何迭代器块之外遇到了使用yield关键字的代码.这应该被认为是编程错误还是罚款? 编辑对不起,忘记发表我的代码: int yiel
yield关键字文档说:
我在任何迭代器块之外遇到了使用yield关键字的代码.这应该被认为是编程错误还是罚款? 编辑对不起,忘记发表我的代码: int yield = previousVal/actualVal; return yield; // Should this be allowed!!!??? 谢谢. 解决方法
在迭代器块之外使用收益是好的 – 它只是意味着它不被用作上下文关键字.
例如: // No idea whether this is financially correct,but imagine it is :) decimal yield = amountReturned / amountInvested; 在这一点上,它不是一个上下文关键字(它从来不是一个“完整”关键字),它只是一个标识符.除非在清晰度方面显然是最佳选择,否则我会尽量避免使用它,但有时可能会这样做. 您只能将其用作产量返回和收益率中断的上下文关键字,这仅在迭代器块中才有效. (他们将一种方法转化为迭代器.) 编辑:回答你的“应该允许”的问题…是的,应该.否则,当C#2被释放时,使用yield作为标识符的所有现有C#1代码将变得无效.它应该小心使用,而C#团队确保它从来没有实际上是模糊的,但它是有道理的. 许多其他上下文关键字也是如此 – “从”,“选择”,“在哪里”等你想阻止那些从来不是标识符? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |