Visual Studio 2010:是否可以在条件之外的所有“==”语法高亮显示?

4

我刚刚花了几个小时来调试我的代码。问题的关键在于一行代码:

a == b;

实际上我需要的是

a = b;

这是一个经典而愚蠢的错误。问题是,每次检查代码的这个部分时,我的眼睛都忽略了==。

有没有一种方法可以启用所有==之外的语法高亮(波浪线)?

也就是说,我希望Visual Studio在if(),while(),for(),?:等之外警告我是否存在==。这个程序是用C++编写的,但我想在编辑C#时拥有同样的功能。

我也可以用正则表达式轻松设置错误波浪线。


2
你在C#中不需要它。该语言禁止这样做。 - John Saunders
这让我想起了曾经浪费一整天时间,最终发现问题出在一个错误的写法 x!=x;,而作者本意是 x=!x;。在我注意到问题之前,我大概已经看了那行代码100次了。如果更多程序员利用空格使代码易读,那就太好了。 - Kristopher Johnson
2个回答

3

这并没有真正回答你的问题,但考虑到编译器应该已经发出了一级警告,所以这个问题似乎是无意义的:C4553


这对我自己的项目很有用,但是这个项目是为工作而做的,我们的构建脚本以一种不易搜索的方式输出大量警告。因此,基本上,我失去了这个好的警告。 - mahercbeaucoup
警告是好事情 - 它们是免费的。明确禁用那些你不关心的警告。修复其余部分。 - sean e
1
如果你正在处理从未进行过清理的代码,请逐级处理警告。将警告设置为1级进行编译,然后处理结果。递增级别并重复此过程。另外,为了帮助划分工作,您只需要一次编译一个文件,无需链接。头文件中的警告会因为在每个被包含的源文件中都会重复出现而倍增。使用警告指示来禁用那些您真正不关心的警告。 - sean e
谢谢,我会把那个作为一个临时解决方案,但我仍然希望Visual Studio能立即告诉我我正在做蠢事。 - mahercbeaucoup
1
编译器错误的红色波浪线是在VS2010中才引入的。也许在下一个版本中,我们也会得到警告的波浪线。 - sean e
显示剩余2条评论

0
有时候在条件语句之外使用operator==是很有用的。考虑以下代码:
bool valuesAreGood = (a == b) && (c == d) && (a < c) ...;
if (valuesAreGood) {
    ...
}

我知道有时它很有用,但我更愿意收到警告。 - mahercbeaucoup

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接