Conditional特性用法
说明:根据预处理标识符执行方法。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特性用法相关推荐
- C# 使用Conditional特性而不是#if条件编译
概述 #if/#endif 语句常用来基于同一份源码生成不同的编译结果,其中最常见的就是debug版和release版.但是这些工具在实际应用中并不是非常友好,因为它们容易被滥用,其代码页进而难以理解 ...
- unity Conditional特性 总结
除了用预处理指令来控制编译之外,在Unity中可以用Conditional特性来控制编译. 一.使用方法 [Conditional("Debug")] public static ...
- C#基础知识学习——特性(Conditional特性、Obsolete特性、自定义特性)(十六)
特性:C#特性是指我们可以对类.以及C#程序集中的成员进行进一步的描述,比如我们写一个关于人的类Person,该类可以对人的属性以及某些行为(方法)进行描述.那么如果我们要对人类进行进一步描述呢,比如 ...
- C# Conditional 特性
Conditional 特性简介 Conditional 特性允许我们包括或排斥特定方法的所有调用.为方法声明应用 Conditional 特性并把编译符作为参数来使用. 如果定义了编译符号,那么编译 ...
- Spring系列(六):@Conditional注解用法介绍
今天给大家介绍@Conditional懒加载注解用法,希望对大家能有所帮助! 1.@Conditional注解介绍 @Conditional是Spring4版本新提供的一种注解,它的作用是按照设定的条 ...
- Conditional 特性的使用
当调用被[Conditional("预处理符号")]标记为条件的方法时,指定的预处理符号的存在或不存在决定是否包含或省略此调用.如果定义了该符号,则包含调用:否则省略调用.使用 C ...
- @Conditional的用法
Conditional作用 必须是@Conditional指定的条件成立,才给容器中添加组件,配置类里面的所有内容才生效 自动配置类必须在一定的条件下才生效 可以通过启用debug=true属性:来让 ...
- 把事务封装成类似Serializable用法的特性
最近几天上班没事可做就想着整理常用的类库方法,验证.消息.分页.模版引擎.数据库操作.ini操作.文本操作.xml操作等,最后就是现在这个事务特性. 1 /// <summary> 2 / ...
- C# 特性(attribute)
一.什么是特性 特性是一种允许我们向程序的程序集添加元数据的语言结构,它是用于保存程序结构信息的某种特殊类型的类. MSDN中对它的解释是:特性提供功能强大的方法以将声明信息与 C# 代码(类型.方法 ...
- [你必须知道的.NET] 第三回:历史纠葛:特性和属性
本文将介绍以下内容: • 定制特性的基本概念和用法 • 属性与特性的区别比较 • 反射的简单介绍 1. 引言 attribute是.NET框架引入的有一技术亮点,因此我们有必要花点时间来了解本文的内容 ...
最新文章
- C++中 =defaule 和 =delete什么意思
- java redis 多节点,Redis单机多节点集群部署,超简单
- 5个Python函数,算天花板水平?
- 使用万能框架HttpHelper抓取安卓APP数据
- [转]Laravel 4之Eloquent ORM
- iPhone 13系列整机较iPhone 12更重 最重接近半斤
- 记一道简单的Java面试题,但答错率很高!
- FD.io VPP:CentOS7下构建自己的VPP RPM包
- opencv-api minEnclosingCircle
- 正则表达式中/i,/g,/ig,/gi,/m的区别和含义
- 多数据源切换(拦截器)
- 券商结算VS托管行结算
- continue 结束本次循环,继续下一次循环
- ESP8266/ESP32 驱动ST7789屏幕
- react-native6.0版本xcode11.2版本ios报错Unrecognized font family 'Ionicons'
- 什么是图片的DPI?如何修改图片DPI值?
- oracle大型数据库系统在aix/unix上的实战详解 pdf,Oracle10g在AIX上的安装准备工作《Oracle大型数据库系统在AIX/unix上的实战详解》集中答疑40...
- 抖音小店为什么没生意?万顿思教育
- 可编程彩灯控制器(8X8点阵)
- Miniconda软件安装教程(Windows)