VS2019调试如何判断变量是否为同一对象及多条件if哪条生效
Visual Studio 2019 Community 多条件if语句调试解决方案
一、判断两个变量是否为同一对象
无需修改代码,调试时可通过以下两种方式直接验证:
- 方法1:在调试停到if语句行时,打开即时窗口,输入
? object.ReferenceEquals(this, myOtherObject)后回车,返回true说明两个变量指向同一对象,返回false则不是。该方法不会受类型重写的==运算符干扰,判断结果为严格的引用同一性。 - 方法2:右键两个变量分别选择「添加监视」,在监视窗口中对比两个变量的内存地址,或直接输入
object.ReferenceEquals(this, myOtherObject)作为监视项,运行时会实时显示结果。
二、定位多条件判断中不满足的子条件
完全不需要拆成嵌套if,可选方案如下:
- 方法1:利用VS原生的子表达式查看能力,调试停在if语句行时,鼠标悬停到每个子判断条件上,会直接显示该条件的布尔计算结果。注意
&&是短路运算符,若第一个条件已经返回false,后续条件不会执行,此时悬停后续条件无结果即可判定是第一个条件不满足。 - 方法2:在不改变原有逻辑的前提下,将每个子条件的结果存入临时布尔变量,调试时直接查看变量值即可,代码可读性也更高:
// 拆分条件存储结果,无需修改判断逻辑 bool notSameObj = this != myOtherObject; bool anotherVarIsFalse = anotherVariable != true; if(notSameObj && anotherVarIsFalse) { //do something }
- 方法3:在即时窗口中分别执行每个子条件,直接输出结果判断,不需要修改任何业务代码。
内容的提问来源于stack exchange,提问作者Álvaro García
相关产品推荐
相关产品推荐

