这是一种使用简单文本替换的快速而肮脏的方法:
- 格式化 C# 文件,使所有缩进对齐。您可以在
Edit
> Advanced
>中执行此操作Format Document
- 打开文本替换为
Ctrl+H
- 设置“要查找的文本”字段
"^ {"
。
- 将“替换”字段设置为此
" {System.Diagnostics.Debugger.Break();"
- 单击窗口中的“使用正则表达式”小按钮
- 点击“全部替换”或点击
Alt+A
- 如果您的文件包含任何具有嵌套枚举、类或结构的类,您将遇到一些编译器错误。从它们中删除 Debug 调用,直到您的代码编译。如果您的嵌套类有自己的方法,则必须在替换字符串中使用更多选项卡再次运行此过程。
工作原理:它使用 Visual Studio 文档格式化程序,并假定文件中的所有方法都以两个选项卡开头,然后是一个“{”。因此,任何以两个选项卡和一个“{”开头的行都将替换为相同的两个选项卡、相同的“{”和对调试器的调用。
如果你的文件有嵌套枚举等,你会得到编译器错误,因为文本替换不区分方法和枚举。例如,您会看到:
enum MyColors
{ System.Diagnostics.Debugger.Break(); //error here
Red,
Green,
Blue,
}
如果您希望能够禁用这些断点,我能想到的最好方法是一个简单的布尔值。在您的代码中的某处,插入以下内容:
#if DEBUG
private static bool _ignoreDebug = false;
#endif
(我把这个代码放在#if DEBUG
那里作为一个标志,这个代码仅用于调试。没有必要)然后在上面的步骤#4中,使用这个替换字符串:
" {if(!_ignoreDebug){System.Diagnostics.Debugger.Break();}"
然后,当您遇到断点并且不想再点击时,在监视窗口中键入 this 并按 enter _ignoreDebug = true
。要重新打开它,您需要在可以访问_ignoreDebug
布尔值的地方插入一个手动断点。
要从您的代码中删除所有这些,请进行另一个文本替换,或者只是编辑撤消所有内容。