我一直在写一个#if DEBUG
, #else
, #endif
代码片段,我注意到 Visual Studio 不允许我使用自动完成来完成部分键入的成员名称,并且它不会检查灰显的非活动代码是否有错误。我发现让它再次受到关注的唯一方法是将构建模式从“调试”切换到“发布”。但这样很不方便,感觉还有更好的办法。
example:
#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 中的应用程序正在调试模式下运行,因此编译器会忽略其中的代码#else
part.
运行您的应用程序Release然后模式#else
代码将可用,但是#if DEBUG
将不可用。
Update
用于检查两者#if DEBUG
& #else
您需要运行应用程序两次。
1.一旦进入debug代码中的模式#if DEBUG
like :
这里的应用程序处于调试模式,所以#if DEBUG
条件代码已激活..
- 运行应用程序release检查代码的模式
#else
健康)状况。在这里,其他部分也将能够使用自动完成和调试。
有关详细信息,请参阅 microsoft 文档:
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/debug-compiler-option
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/listed-by-category
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)