用条件属性而不是#if
程序员文章站
2022-06-21 13:22:44
使用#if #endif可以在同样源码上生成不同的编辑(结果),通常是调式(debug)和发布(release)版本。 但是#if/#endif很容易被滥用,使得编写的代码难以理解和调式,所以C#提供了条件特性(Conditional attribute)来识别哪些方法可以根据环境设置来判断是否应该 ......
使用#if #endif可以在同样源码上生成不同的编辑(结果),通常是调式(debug)和发布(release)版本。
但是#if/#endif很容易被滥用,使得编写的代码难以理解和调式,所以C#提供了条件特性(Conditional attribute)来识别哪些方法可以根据环境设置来判断是否应该被调用。
条件特性比条件编辑#if #endif更加清晰明白,所有优秀使用Conditional attribute
[Conditional("DEBUG")]//只在Debug模式下test方法才会被调用 public static void Test() { Console.WriteLine("Debug"); }
总结:编译器使用Conditional特性来帮助开发者使用#if #endif 而产生常规错误。条件特性比起预处理,它为区分条件代码提供了更好的区分
推荐阅读
-
iOS 开发 NSString(NSDictory,NSArray)为什么用copy修饰,而不是用strong修饰
-
为什么显示屏的大小用英寸而不是厘米衡量? 显示器分辨率
-
iOS @property中的NSString, NSArray, NSDictionary属性为什么大多时候用copy而不用strong的原因
-
古代皇帝洗澡为什么要用太监 而不是选择用宫女伺候呢
-
[tip]用jsp实现直接下载文件而不是在浏览器中打开的功能
-
传递数组对象_依赖注入模式中,咋就用对象而不是用数组传递呢?
-
为什么用简单工厂模式,而不是直接实例化对象
-
前端开发:关于Vue组件中的data属性值是函数而不是对象的详解
-
用条件属性而不是#if
-
mysql-怎么用程序保证表之间的关联,而不是主外键?