我刚在Async CTP website上看到的VB.NET 的下一个版本将有迭代器。我猜他们包括迭代器,因为重写过程类似于用于新 async
的过程。/await
特征。
但是阅读解释该功能的文档后,我意识到 VB.NET 迭代器实际上将具有当今 C# 中不可用的功能,即:
这些是 C# 中的已知限制。这些限制是否有可能在 C# 5 中被删除?如果没有,有什么理由可以在 VB.NET 中而不是在 C# 中完成?
最佳答案
Is there any chance that these limitations will be removed in C# 5 ?
机会渺茫。我当然不会指望它。这些是“很高兴拥有”的功能,而不是“必须拥有”的功能,当您有大量工作要做时,“很高兴拥有”的功能有时会超出计划,尽管它们很好。
If not, is there any reason why it can be done in VB.NET and not in C# ?
有什么技术原因吗?不,当然有工程原因。
通常情况下,成为实现特定功能的第二个团队是有益的。第二个实现的实现者可以利用从第一次尝试中获得的知识,而无需承担如此大的研发成本,同时不会产生任何维护或向后兼容性税。
VB 的优势在于尚未拥有此功能,因此不存在需要 100% 向后兼容的数百万行用户代码。这消除了相当大的成本负担。并且他们拥有一个包含错误报告、设计说明等的大型数据库,这些数据库来自在 C# 中使用此功能的八年之久。
关于vb.net - VB.NET vNext 中的迭代器,以及 C# 中迭代器的局限性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4063275/