vb.net - VB.NET vNext 中的迭代器,以及 C# 中迭代​​器的局限性

标签 vb.net iterator c#-5.0

我刚在Async CTP website上看到的VB.NET 的下一个版本将有迭代器。我猜他们包括迭代器,因为重写过程类似于用于新 async 的过程。/await特征。

但是阅读解释该功能的文档后,我意识到 VB.NET 迭代器实际上将具有当今 C# 中不可用的功能,即:

  • try/catch 块中的迭代器块
  • 匿名迭代器块

  • 这些是 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/

    相关文章:

    c++ - 根据自定义 Iterator<T> 将返回值定义为 * 或 &

    c++ - std::map 多个迭代器、删除及其值

    c# - TPL数据流,对核心设计感到困惑

    c# - C#5.0 中的非阻塞 sleep (类似于 JavaScript 中的 setTimeout)

    visual-studio-2013 - 如何解决 Windows Azure 诊断运行时错误(无法创建 WindowsAzure.Diagnostics、Version=xx、Culture=neutral、PublicKeyToken=xx

    vb.net -\在VB中执行整数除法吗?

    asp.net - 确定最接近的已知颜色

    c++ - 返回迭代器时,返回迭代器类型还是返回实际对象更好

    mysql - 使用 vb.net 和 SQL 数据库在现有系统上实现 RFID

    c# - 与 LAN 上的应用程序通信