Visual Studio如何在不破坏IEnumerator <T>的MoveNext的情况下评估IEnumerable?

水冷却器v2

假设您为以下代码编写了一个自定义枚举器:

public class School : IEnumerable<Student>

然后在客户端代码中,您执行了以下操作:

static void Main(string[] args)
{
    var school = CreateSchoolWithStudents();

    var query = from student in school
                where student.Name.StartsWith("S")
                select student;

    Debugger.Break();
}

private static School CreateSchoolWithStudents()
{
    return new School
    {
        new Student { Name = "Sathyaish" },
        new Student { Name = "John" },
        new Student { Name = "Carol" },
        new Student { Name = "Peter" }
    };
}

然后,在类的MoveNext方法实现上设置一个断点StudentEnumerator

然后,在这种情况下,当您运行代码并在构造查询/ IEnumerable之后调试器中断,并Results View在下图中扩展了类似内容时,Visual Studio如何评估序列而不破坏其枚举数MoveNext

我一直对此感到好奇。

在此处输入图片说明

布赖恩·拉斯穆森

Visual Studio使用称为FuncEval的功能,该功能基本上可以让IDE运行您的代码。这启用了许多不错的功能,但是显然有很多注意事项示例包括对属性的副作用,死锁,跳过循环步骤以及怪异的调试体验。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Visual Studio如何在不破坏IEnumerator <T>的MoveNext的情况下评估IEnumerable?

来自分类Dev

如何在不登录 Xamarin 帐户的情况下构建 Xamarin Visual Studio 项目

来自分类Dev

如何在不崩溃的情况下将对象ID添加到Visual Studio 2015中的任何本地对象

来自分类Dev

如何在不崩溃的情况下将对象ID添加到Visual Studio 2015中的任何本地对象

来自分类Dev

在不安装Visual Studio的情况下使用Visual Tools

来自分类Dev

如何在不破坏标签的情况下截断html?

来自分类Dev

如何在不破坏依赖的情况下删除ImageMagick?

来自分类Dev

如何在不破坏画布的情况下刷新数据

来自分类Dev

如何在不破坏列表的情况下释放指针?

来自分类Dev

如何在没有外接程序基础结构的情况下使用Visual Studio FileCodeModel?

来自分类Dev

如何在没有Visual Studio的情况下构建Windows Store 8.1应用程序?

来自分类Dev

如何在没有Visual Studio项目的情况下更新内部企业网页?

来自分类Dev

如何在没有CMake的情况下使用Visual Studio 2013设置Dlib?

来自分类Dev

如何在没有Visual Studio的情况下安装Nuget软件包?

来自分类Dev

如何在不使用Visual Studio的情况下引用程序集(* .dll)?

来自分类Dev

如何在不使用Visual Studio的情况下编译和运行C#程序?

来自分类Dev

如何在Visual Studio中不使用openfiledialog的情况下打开文件?

来自分类Dev

默认情况下,如何在Visual Studio 2015中激活ByVal关键字的插入?

来自分类Dev

如何在不使用GUI的情况下卸载Visual Studio Code扩展?

来自分类Dev

如何在不使用 Visual Studio 的情况下查看对象是否在 DLL 中被销毁

来自分类Dev

如何在不打开 Visual Studio 中的浏览器的情况下运行 URL?

来自分类Dev

在不使用Visual Studio的情况下使用TFS

来自分类Dev

在没有Visual Studio的情况下安装bcrypt

来自分类Dev

在没有Visual Studio的情况下安装Masm

来自分类Dev

默认情况下,Visual Studio中未安装Gacutil

来自分类Dev

在不使用Visual Studio的情况下使用WIX

来自分类Dev

在没有Visual Studio的情况下安装bcrypt

来自分类Dev

在输出不变的情况下建立Visual Studio吗?

来自分类Dev

在IEnumerable <t>的情况下使用System.Linq?

Related 相关文章

  1. 1

    Visual Studio如何在不破坏IEnumerator <T>的MoveNext的情况下评估IEnumerable?

  2. 2

    如何在不登录 Xamarin 帐户的情况下构建 Xamarin Visual Studio 项目

  3. 3

    如何在不崩溃的情况下将对象ID添加到Visual Studio 2015中的任何本地对象

  4. 4

    如何在不崩溃的情况下将对象ID添加到Visual Studio 2015中的任何本地对象

  5. 5

    在不安装Visual Studio的情况下使用Visual Tools

  6. 6

    如何在不破坏标签的情况下截断html?

  7. 7

    如何在不破坏依赖的情况下删除ImageMagick?

  8. 8

    如何在不破坏画布的情况下刷新数据

  9. 9

    如何在不破坏列表的情况下释放指针?

  10. 10

    如何在没有外接程序基础结构的情况下使用Visual Studio FileCodeModel?

  11. 11

    如何在没有Visual Studio的情况下构建Windows Store 8.1应用程序?

  12. 12

    如何在没有Visual Studio项目的情况下更新内部企业网页?

  13. 13

    如何在没有CMake的情况下使用Visual Studio 2013设置Dlib?

  14. 14

    如何在没有Visual Studio的情况下安装Nuget软件包?

  15. 15

    如何在不使用Visual Studio的情况下引用程序集(* .dll)?

  16. 16

    如何在不使用Visual Studio的情况下编译和运行C#程序?

  17. 17

    如何在Visual Studio中不使用openfiledialog的情况下打开文件?

  18. 18

    默认情况下,如何在Visual Studio 2015中激活ByVal关键字的插入?

  19. 19

    如何在不使用GUI的情况下卸载Visual Studio Code扩展?

  20. 20

    如何在不使用 Visual Studio 的情况下查看对象是否在 DLL 中被销毁

  21. 21

    如何在不打开 Visual Studio 中的浏览器的情况下运行 URL?

  22. 22

    在不使用Visual Studio的情况下使用TFS

  23. 23

    在没有Visual Studio的情况下安装bcrypt

  24. 24

    在没有Visual Studio的情况下安装Masm

  25. 25

    默认情况下,Visual Studio中未安装Gacutil

  26. 26

    在不使用Visual Studio的情况下使用WIX

  27. 27

    在没有Visual Studio的情况下安装bcrypt

  28. 28

    在输出不变的情况下建立Visual Studio吗?

  29. 29

    在IEnumerable <t>的情况下使用System.Linq?

热门标签

归档