我一直在编写 #if DEBUG
、#else
、#endif
代码片段,我注意到 Visual Studio 没有't let me use autocomplete to fulfill partially typed member names, and it does not check the grey out inactive code for errors.我发现让它再次受到关注的唯一方法是将构建模式从调试切换到发布。但这很不方便,感觉有更好的方法。
例子:
#if DEBUG
throw;
#else
throw new exc // I want to use autocomplete here but can't because it's greyed out
#endif
如何让 VS 停止忽略 #if DEBUG
的其他配置范围内的其他代码?
最佳答案
这是条件编译的目的,它按预期工作。使用条件编译应用程序可以在编译时忽略某些代码。您在 Visual Studio 中的应用程序在 Debug模式下运行,因此编译器忽略了 #else
部分中的代码。
在Release 模式下运行您的应用程序,然后#else
代码将可用,但#if DEBUG
将不可用。
更新
要同时检查 #if DEBUG
和 #else
,您需要运行应用程序两次。
1.一旦进入调试模式,其中带有#if DEBUG
的代码如下:
此处应用程序处于 Debug模式,因此 #if DEBUG
条件代码处于事件状态..
- 以release 模式运行应用程序以检查
#else
条件下的代码。在这里,其他部分也将能够使用自动完成和调试。
有关这方面的更多信息,请参阅 Microsoft 文档:
关于c# - Visual Studio 忽略 #if DEBUG/RELEASE 范围内的代码,并且不检查错误或自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49610833/