1. 当调用被[Conditional(“预处理符号”)]标记为条件的方法时,指定的预处理符号的存在或不存在决定是否包含或省略此调用。如果定义了该符号,则包含调用;否则省略调用。使用 Conditional 是封闭 #if 和 #endif 内部方法的替代方法。
#define TRACE_ON //若没有此宏定义预处理,则Trace中的Msg(string msg)方法调用将被忽略
using System;
using System.Diagnostics;public class Trace
{[Conditional("TRACE_ON")]public static void Msg(string msg){Console.WriteLine(msg);}
}public class ProgramClass
{static void Main(){Trace.Msg("Now in Main...");Console.WriteLine("Done.");}
}

如果未定义 TRACE_ON 标识符,则将不会显示跟踪输出。

参考文档
Conditional(C# 编程指南)

  1. 文档中说Conditional可以实现或的效果,不过试了下想实现与的效果不行:
public class Trace
{[Conditional("TRACE_ON"),Conditional("TRACE_ON_2")] //可以实现或的效果public static void Msg(string msg){UnityEngine.Debug.Log("msg:" + msg);}[Conditional("TRACE_ON")]//可以实现或的效果[Conditional("TRACE_ON_2")]public static void Msg2(string msg){UnityEngine.Debug.Log("msg:" + msg);}
}

下面这样实现不了与的效果(没有找到实现与的写法):

  1. 对类进行属性条件限定的测试,也并没有效果,不管定不定义DEBUG,并没有什么影响

Conditional 特性的使用相关推荐

  1. C# 使用Conditional特性而不是#if条件编译

    概述 #if/#endif 语句常用来基于同一份源码生成不同的编译结果,其中最常见的就是debug版和release版.但是这些工具在实际应用中并不是非常友好,因为它们容易被滥用,其代码页进而难以理解 ...

  2. unity Conditional特性 总结

    除了用预处理指令来控制编译之外,在Unity中可以用Conditional特性来控制编译. 一.使用方法 [Conditional("Debug")] public static ...

  3. C#基础知识学习——特性(Conditional特性、Obsolete特性、自定义特性)(十六)

    特性:C#特性是指我们可以对类.以及C#程序集中的成员进行进一步的描述,比如我们写一个关于人的类Person,该类可以对人的属性以及某些行为(方法)进行描述.那么如果我们要对人类进行进一步描述呢,比如 ...

  4. C# Conditional 特性

    Conditional 特性简介 Conditional 特性允许我们包括或排斥特定方法的所有调用.为方法声明应用 Conditional 特性并把编译符作为参数来使用. 如果定义了编译符号,那么编译 ...

  5. C# 特性(attribute)

    一.什么是特性 特性是一种允许我们向程序的程序集添加元数据的语言结构,它是用于保存程序结构信息的某种特殊类型的类. MSDN中对它的解释是:特性提供功能强大的方法以将声明信息与 C# 代码(类型.方法 ...

  6. [你必须知道的.NET] 第三回:历史纠葛:特性和属性

    本文将介绍以下内容: • 定制特性的基本概念和用法 • 属性与特性的区别比较 • 反射的简单介绍 1. 引言 attribute是.NET框架引入的有一技术亮点,因此我们有必要花点时间来了解本文的内容 ...

  7. C#中的特性,什么是特性.

    什么是特性? 特性(attribute)是一种允许我们向程序的程序集添加元数据的语言结构.它是用于保存程序结构信息的某种特殊类型的类.      将应用了特性的程序结构叫做目标.      设计用来获 ...

  8. CSharp(C#)语言_反射 和 特性

    反射和特性 元数据和反射 Type类 获取Type对象 什么是特性 应用特性 预定义的保留的特性 有关应用特性的更多内容 自定义特性 访问特性 元数据和反射   大多数程序都要处理数据,包括读.写.操 ...

  9. C#委托·特性·linq查询.线程

    目录 泛型 泛型类 泛型方法 委托 委托基本知识 泛型委托 Action委托 Func委托 多播委托 匿名函数 lambda表达式 观察者设计模式(事件) LINQ查询语句 反射和特性 特性 线程 委 ...

最新文章

  1. desc mysql 连表查询_Mysql连表查询
  2. php import_resource,@ImportResource
  3. u盘装sun服务器系统,U盘多引导ISO系统安装
  4. 整活插件 炉石传说_炉石传说:一顿操作猛如虎,定睛一看原地杵,会长整活被死人抬走...
  5. javadoc时候乱码-编码 GBK 的不可映射字符 - wqjsir的专栏 - 博客频道 - CSDN.NET
  6. 前端学习(3278):循环 遍历
  7. java string逆序_java经典入门算法题,java初学者必备
  8. python英文字典小程序_python 小程序—三级菜单—循环和字典练习
  9. 【Python】Python随机数random模块的应用
  10. 前端优化系列之浏览器渲染
  11. 图解硬盘分区调整/硬盘分区重新调整的好软件/Norton PartitionMagic 版本 8.05 硬盘分区调整/想把硬盘空间调整一下...
  12. nginx静态资源 性能_如何欺骗生产环境资源以进行性能调整
  13. 通过PHP自带的$_SERVER判断 手机访问网站自动跳转到手机版
  14. 欧拉角Yaw、Pitch、Roll
  15. atom n270 cpu linux,继续改造ATOM N270增加千兆口自制软路由
  16. Python中常见的保留字(33+2)
  17. CUDA-CODE3-查询GPU设备属性
  18. android bugly 错误分析,# app 3.6.1 Bugly中崩溃分析
  19. 【C语言程序】求直角三角形边长
  20. 社交网络崛起带来口碑营销的复兴

热门文章

  1. 90后为何这么“秃”然?中国2.5亿脱发人都藏在了哪?除了程序员还有这个行业爱脱发!
  2. mysql事务能支持多大_MySQL事务调优
  3. 清晰理解Objective-C元类
  4. 亚马逊财务如何计算利润-跨境知道
  5. 黑马程序员—一个美女程序员面试经历,不要羡慕姐,姐只是个传说!
  6. 冲压模具丨你也是在做车架类模具设计么?注意事项来了
  7. GLES 顶点缓冲区对象(VBO)
  8. c语言单片机按键程序,通过键盘往单片机中输入任意数字的C语言程序?
  9. 【方法】pyautogui入门学习(python自动脚本)
  10. 智能应用搭建平台——LCHub低代码表单 vs 流程表单 vs 仪表盘