说明:根据预处理标识符执行方法。Conditional 特性是 ConditionalAttribute 的别名,可应用于方法或属性类。相对于#if和#endif,更灵活更简洁和不易出错。
例如:

#define CONDITIONAusing System;
using System.Collections.Generic;
using System.Diagnostics;namespace ConsoleApplication2
{class Program{static void Main(string[] args){Test1();Test2();Console.ReadKey();}[Conditional("CONDITIONA")]public static void Test1(){Console.WriteLine("Test1");}public static void Test2(){Console.WriteLine("Test2");}}
}

  这时Test1和Test2都将被执行,如果注释掉#define CONDITIONA,Test1将不会被执行。
  也可以同时定义多个Conditional特性,这时多个特性之间的关系为或:

class Program{static void Main(string[] args){Test1();Test2();Console.ReadKey();}[Conditional("CONDITIONA"), Conditional("CONDITIONB")]public static void Test1(){Console.WriteLine("Test1");}public static void Test2(){Console.WriteLine("Test2");}}

 如果要获得逻辑与效果,需要将所需执行代码全部放到Test2中执行:
class Program{static void Main(string[] args){Test1();Console.ReadKey();}[Conditional("CONDITIONA")]public static void Test1(){Test2();}[Conditional("CONDITIONB")]public static void Test2(){Console.WriteLine("Test1");Console.WriteLine("Test2");}}

转载于:https://www.cnblogs.com/infly123/p/3806053.html

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. Spring系列(六):@Conditional注解用法介绍

    今天给大家介绍@Conditional懒加载注解用法,希望对大家能有所帮助! 1.@Conditional注解介绍 @Conditional是Spring4版本新提供的一种注解,它的作用是按照设定的条 ...

  6. Conditional 特性的使用

    当调用被[Conditional("预处理符号")]标记为条件的方法时,指定的预处理符号的存在或不存在决定是否包含或省略此调用.如果定义了该符号,则包含调用:否则省略调用.使用 C ...

  7. @Conditional的用法

    Conditional作用 必须是@Conditional指定的条件成立,才给容器中添加组件,配置类里面的所有内容才生效 自动配置类必须在一定的条件下才生效 可以通过启用debug=true属性:来让 ...

  8. 把事务封装成类似Serializable用法的特性

    最近几天上班没事可做就想着整理常用的类库方法,验证.消息.分页.模版引擎.数据库操作.ini操作.文本操作.xml操作等,最后就是现在这个事务特性. 1 /// <summary> 2 / ...

  9. C# 特性(attribute)

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

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

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

最新文章

  1. C++中 =defaule 和 =delete什么意思
  2. java redis 多节点,Redis单机多节点集群部署,超简单
  3. 5个Python函数,算天花板水平?
  4. 使用万能框架HttpHelper抓取安卓APP数据
  5. [转]Laravel 4之Eloquent ORM
  6. iPhone 13系列整机较iPhone 12更重 最重接近半斤
  7. 记一道简单的Java面试题,但答错率很高!
  8. FD.io VPP:CentOS7下构建自己的VPP RPM包
  9. opencv-api minEnclosingCircle
  10. 正则表达式中/i,/g,/ig,/gi,/m的区别和含义
  11. 多数据源切换(拦截器)
  12. 券商结算VS托管行结算
  13. continue 结束本次循环,继续下一次循环
  14. ESP8266/ESP32 驱动ST7789屏幕
  15. react-native6.0版本xcode11.2版本ios报错Unrecognized font family 'Ionicons'
  16. 什么是图片的DPI?如何修改图片DPI值?
  17. oracle大型数据库系统在aix/unix上的实战详解 pdf,Oracle10g在AIX上的安装准备工作《Oracle大型数据库系统在AIX/unix上的实战详解》集中答疑40...
  18. 抖音小店为什么没生意?万顿思教育
  19. 可编程彩灯控制器(8X8点阵)
  20. Miniconda软件安装教程(Windows)

热门文章

  1. 《掌握需求过程》读书笔记3
  2. java和javascript双引号嵌套的问题
  3. Thinking in Java Chapter 14
  4. final、finally、finalize 区别
  5. Dictionary Union and Sort by value
  6. [置顶]架构设计之性能设计经验
  7. 详解由VS 2010生成的Bug报告(2) - 报告的内容
  8. [Flex]浅析Mate flex framework在实际项目中的应用(二)
  9. Linux下配置安装NFS
  10. Java 异常处理 之 运行期异常