[转]警惕ConditionalAttribute的陷阱

ConditionalAttribute的用法信赖大师都不会陌生,一般用于某个功能只须要在DEBUG(或其他模式)下应用。例如下面的代码将会只在DEBUG景象下输出一些调试信息,其他模式则不会。 public void Run() { //do something LogDebugInfo(); } [Conditional("DEBUG")] protected void LogDebugInfo() { ...

[转]C#使用ConditionalAttribute特性来实现代码调试

#if/#endif条件编译常用来由同一份源代码生成不同的结果文件,最常见的有debug版和release版。但是,这些工具在具体应用中并不是非常得心应手,因为它们太容易被滥用了,使用它们创建的代码通常都比较难理解,且难以调试。C#语言的设计者们对这种问题的解决方案是创建更好的工具,以达到为不同环境创建不同机器码的目的。C#为此添加了一个Conditional特性,该特性可以标示出某种环境设置下某个方法是否应该被调用。使用这种方式来描述条件编译要比#if/#endif更加清晰。由于编译器理解Conditional特性,所以它可以在Conditional特性被应用时对代码做更好的验证。Co...

最近回复