[英]How can I introduce sentences and lines of code that will only be executed in debug mode?
我有一个应用程序,我需要几乎所有时间进行代码更改(更改加密程序等等),所以我的想法是每次进行更改时都激活所有调试参数和变量。 我不想一直评论和取消注释代码,所以我的问题是指仅在调试模式下执行的简单代码行。 ¿我怎样才能实现这一目标?
您可以使用条件代码部分:
#if DEBUG
//Your code goes here.
#endif
或者,您可以使用[Conditional("DEBUG")]
属性将发布版本中的整个函数清零。
如:
[Conditional("DEBUG")]
private void YourFunction()
{
}
这是一个很好的参考。
http://www.csharphelp.com/archives/archive36.html
从源头上看,这是一个很好的例子:
#if DEBUG
Console.WriteLine("DEBUG is defined");
#else
Console.WriteLine("DEBUG is not defined");
#endif
两个主要的解决方案是预处理器指令和条件属性 。 相关的预处理器指令的工作原理如下:
#if DEBUG
// Lines here are only compiled if DEBUG is defined, like in a Debug build.
#else
// Lines here are only compiled if DEBUG is not defined, like in a Release build.
#endif
Conditional属性应用于方法:
[Conditional("DEBUG")]
public void DoDebugOnly()
{
// Whatever
}
然后,只有在定义了DEBUG时才会编译所有对DoDebugOnly()的调用 。
这两种方法也适用于任何其他预处理程序标识符。 TRACE是集成到Visual Studio中的另一个示例,但您定义的任何预处理程序标识符都可以:
#define FOO
#if FOO
// Lines here are only compiled if FOO is defined.
#endif
根据您尝试执行的操作,您可能需要考虑日志框架,例如log4net或Logging Application Block 。 这些将允许您在代码中保留调试消息,但只在外部配置文件说明时才输出它们。
但是,如果要添加/删除实际执行逻辑的代码,请使用其他答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.