• Visual Studio 调试技巧 -- 为 Lambda 表达式设置中断


    如果我说 .NET 世界上最厉害的开发平台(语言),资深的同仁肯定不会往下看了,因为这将是一个无休止的争论,到头来搞不好还是人身攻击。然而,如果我说 Visual Studio 是世界上最友好最强大的开发工具,估计是没有几个人会反对的。说它强大,首先就体现在它为广大的码农朋友们提供的各种调试的可能性。

    从宏观看,程序的调试无非就是在程序的运行过程中查看程序的数据,以了解程序的运行状态。既然要查看数据,我们的第一步就是要设置断点。从今天起,我们将从如何巧设断点以及查看数据两个方面来重新学习和了解 Visual Studio,看它为码农们到底提供了哪些方便,我们每周了解一个小点:

    • 巧设断点
    1. Lambda 表达式中中断
    2. 条件中断
    3. 没有源代码也看可以调试 -- 根据方法名中断
    4. 断点的管理和妙用
    • 查看数据
    1. 查看方法的返回值
    2. DebuggerDisplay Attribute 是什么好东东?
    3. 调教你的 Output 窗口
    4. 巧写日志帮大忙

    这一次我们来看如何在 Lambda 表达式内设置中断。

    如果一个 Lambda 代码块包含了多条语句,我们可以很轻松地对其中一条语句设置断点,这个没有什么特别的。最简单的办法就是让光标进入其中的一行,然后F9。但是,如果一个 Lambda 表达式只有一行语句,也能在 Lambda 表达式内部设置断点吗? 是的! 那如何做呢?

    举个例子来说明。对于以下几句代码,我们要在其中的 Lambda 表达式内部设置断点。

    如果我们仅仅是把光标移入 var values = dictionary.Where(x => x.Value.Contains("F")) 这一行(比方说光标在第一个字符旁)并点击 F9, 当程序在该断点停下来时,该行语句中的 Lambda 表达式还完全没有执行。点击 F10 后,赋值也执行完毕。这个断点对 Lambda 表达式完全不起作用。

    要在 Lambda 表达式 x => x.Value.Contains("F") 中设置断点,我们有两个办法:

    1. 右键点击表达式中的语句,如 x.Value.Contains("F") 中的任何部位,在弹出的菜单中选择Breakpoint -> Insert Breakpoint。

    2. 把光标移入表达式中的语句,如 x.Value.Contains("F") 中的任何部位,点击 F9。

    是不是很简单,哈哈。

    如果在一个断点反复在你不需要的时候被击中,你是不是很烦啊,下次我们就来看看如何为断点设置各种条件吧。

  • 相关阅读:
    MySQL状态变量Aborted_connects与Aborted_clients浅析
    ERROR 1044 (42000): Access denied for user 'root'@'localhost'
    ERROR 3009 (HY000): Column count of mysql.user is wrong…..
    服务器CPU繁忙或内存压力引起网络掉包的浅析与总结
    ORACLE如何找到引起账号锁定的IP的一点思考与总结
    记一次坑爹的ORA-01152&ORA-01110错误
    RMAN restore fails with ORA-01180: can not create datafile 1
    SQL Server的优化器会缓存标量子查询结果集吗
    Snapshot origin volumes can be resized only while inactive: try lvchange -an
    MySQL InnoDB下关于MVCC的一个问题的分析
  • 原文地址:https://www.cnblogs.com/ouyangdahai/p/5945863.html
Copyright © 2020-2023  润新知