Visual Studio 调试技巧 -- 为 Lambda 表达式设置中断
如果我说 .NET 世界上最厉害的开发平台(语言),资深的同仁肯定不会往下看了,因为这将是一个无休止的争论,到头来搞不好还是人身攻击。然而,如果我说 Visual Studio 是世界上最友好最强大的开发工具,估计是没有几个人会反对的。说它强大,首先就体现在它为广大的码农朋友们提供的各种调试的可能性。
从宏观看,程序的调试无非就是在程序的运行过程中查看程序的数据,以了解程序的运行状态。既然要查看数据,我们的第一步就是要设置断点。从今天起,我们将从如何巧设断点以及查看数据两个方面来重新学习和了解 Visual Studio,看它为码农们到底提供了哪些方便,我们每周了解一个小点:
- 巧设断点
- Lambda 表达式中中断
- 条件中断
- 没有源代码也看可以调试 -- 根据方法名中断
- 断点的管理和妙用
- 查看数据
- 查看方法的返回值
- DebuggerDisplay Attribute 是什么好东东?
- 调教你的 Output 窗口
- 巧写日志帮大忙
这一次我们来看如何在 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。
是不是很简单,哈哈。
如果在一个断点反复在你不需要的时候被击中,你是不是很烦啊,下次我们就来看看如何为断点设置各种条件吧。
Visual Studio 调试技巧 -- 为 Lambda 表达式设置中断的更多相关文章
- Visual Studio 调试技巧 (二)-- 为中断设置条件
今天尽是干货.我们来讨论如何为中断设置条件吧. 就像习大大讲的精确扶贫一样,如果我们能很精确地,仅在需要的时候把断点命中,以查看这个时候的程序数据,我们就能显著地提高 Debug 的效率.为断点设置条 ...
- Visual Studio 调试技巧[Command Window & Immediate Window ](Tips)
Visual Studio 调试技巧[Command Window & Immediate Window ](Tips) 1. immediate window 定义的一些 alias (// ...
- 新手必备!11个强大的 Visual Studio 调试技巧
简介 调试是软件开发周期中很重要的一部分.它具有挑战性,同时也很让人疑惑和烦恼.总的来说,对于稍大一点的程序,调试是不可避免的.最近几年,调试工具的发展让很多调试任务变的越来越简单和省时. 这篇文章总 ...
- Visual Studio 调试技巧
.net程序开发工具我都用vs(visual studio),开发过程中的跟踪调试最常用的就是断点跟踪调试了,但是现在才发现,用了这么多年vs断点跟踪调试是白用了啊.它居然还可以有这么多用法. 设置断 ...
- BI之SSIS入门最新版Visual Studio调试技巧
简介 最近公司业务需要用到BI SSIS,SSIS是什么?"SSIS是Microsoft SQL Server Integration Services的简称,是生成高性能数据集成解决方案( ...
- Visual Studio 调试技巧之即时窗口的妙用
在 Visual Studio 中有一个窗口叫 Immediate 窗口,中文版本应该叫即时窗口.默认会在你启动调试时在 VS 编辑器中弹出来.你也可以通过 Debug | Windows | Imm ...
- Visual Studio 调试技巧:10 篇热文汇总
本文精选了 DotNet 2017年11月份的10篇热门文章.其中有技术分享.技术资源. 注:以下文章,点击标题即可阅读 <Visual Studio的调试技巧 > 调试技巧是衡量程序员 ...
- Visual Studio调试技巧 -- Attach to Process
本文系作者原创,但可随意转载.另:图中使用的IDE为Visual Studio 2013 RC 英文版. 一般写完代码时,我们通常会启动调试运行一下看看是否正确,启动运行的方式无非是F5-- Star ...
- Visual Studio 调试技巧---指针,元素个数
刚才,我在Visual Studio 中发现了一个以更好的方式调试指针的技巧.您可以在监视窗口中选择“n”,其中“n”是要显示的元素数.我认为下图是不言而喻的.
随机推荐
- Sharepoint 问题集锦 - 外部列表(external list) - 读取当前用户上下文或用户名作为筛选参数
在创建外部列表过程中,往往需要添加筛选参数,而较多开发用户,会关心如何在外部列表中,只显示当前用户相关的行.本例子中,我们以任务数据表来做例子,看看如何实现这个需求. 1)数据表tbl_task: t ...
- POJ 1013 Counterfeit Dollar 集合上的位运算
Description Sally Jones has a dozen Voyageur silver dollars. However, only eleven of the coins are t ...
- 关于if/else if
今天写存储过程的时候发现了个问题,就是在用if.elsif拼接sql的时候,得到的结果跟想象中 的不一样,大概描述是: 我传进去多个参数,然后判断每个字段是否为空,非空则将字段拼接上去,结果跟预料的 ...
- [HDOJ - 5208] Where is Bob 【DFS+按位贪心】
题目链接:HDOJ - 5208 题目分析 使用按位贪心的思想,即从高位向低位枚举,尽量使这一位的答案为 1 . 我们使用 DFS ,每次就是对于 [l1, r1] [l2, r2] x 进行处理 ...
- [BZOJ 3942] [Usaco2015 Feb] Censoring 【KMP】
题目链接:BZOJ - 3942 题目分析 我们发现,删掉一段 T 之后,被删除的部分前面的一段可能和后面的一段连接起来出现新的 T . 所以我们删掉一段 T 之后应该接着被删除的位置之前的继续向后匹 ...
- Spring整合CXF,发布RSETful 风格WebService
原文地址:http://www.cnblogs.com/hoojo/archive/2012/07/23/2605219.html 这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有 ...
- java中的日期格式
时间日期标识符: yyyy:年 MM:月 dd:日 hh:~12小时制(-) HH:24小时制(-) mm:分 ss:秒 S:毫秒 E:星期几 D:一年中的第几天 F:一月中的第几个星期(会把这个月总 ...
- Keil C中全局变量的使用
在KEIL C中,有多个源文件使用到全局变量时,可以在一个源文件中定义全局变量,在另外的源文件中用extern 声明该变量,说明该变量定义在别的文件中,将其作用域扩展到此文件. 例如:有以下两个源文件 ...
- [FJSC2014]折线统计
[题目描述] 二维平面上有n 个点(xi, yi),现在这些点中取若干点构成一个集合S,对它们按照x 坐标排序,顺次连接,将会构成一些连续上升.下降的折线,设其数量为f(S).如下图中,1->2 ...
- 【转】VSync Count 垂直同步
原文:http://blog.csdn.net/yesy10/article/details/7794556 Unity3D中新建一个场景空的时候,帧速率(FPS总是很低),大概在60~70之间.一直 ...