C# 中利用 Conditional 定义条件方法
利用 Conditional 属性,程序员可以定义条件方法。Conditional 属性通过测试条件编译符号来确定适用的条件。当运行到一个条件方法调用时,是否执行该调用,要根据出现该调用时是否已定义了此符号来确定。如果定义了此符号,则执行该调用;否则省略该调用(包括对调用的参数的计算)。
条件方法要受到以下限制:
- 条件方法必须是类声明或结构声明中的方法。如果在接口声明中的方法上指定
Conditional
属性,将出现编译时错误。 - 条件方法必须具有
void
返回类型。 - 不能用
override
修饰符标记条件方法。但是,可以用virtual
修饰符标记条件方法。此类方法的重写方法隐含为有条件的方法,而且不能用Conditional
属性显式标记。 - 条件方法不能是接口方法的实现。否则将发生编译时错误。
- 如果条件方法用在“委托创建表达式”中,也会发生编译时错误
Ps.尽量使用Conditional属性代替#if和#endif
/*MyConditional.cs*///#define DEBUG
using System;
using System.Diagnostics;
class Info
{//[Conditional("DEBUG")]public static void Trace(string strMessage){Console.WriteLine(strMessage);}[Conditional("DEBUG")]public static void TraceX(string strFormat,params object[] list){Console.WriteLine(strFormat, list);}
}class TestConditional
{public static void Main(){Info.Trace("Cool!");Info.TraceX("{0} {1} {2}","C", "U", 2001);}
}/*
编译方式1:
csc /define:DEBUG /out:1.exe MyConditional.cs运行结果1:
Cool!
C U 2001
*//*
编译方式2:
csc /out:1.exe MyConditional.cs运行结果2:
Cool!
*/
转载于:https://www.cnblogs.com/lizhenlin/p/6542430.html
C# 中利用 Conditional 定义条件方法相关推荐
- python类定义中__init__()_转:python学习——类中为什么要定义__init__()方法
学习Python的类,一直不太理解为什么一定要定义init()方法,现在简要谈一下自己的理解吧. 1.不用init()方法定义类 定义一个矩形的类,目的是求周长和面积. 1 classRectangl ...
- linux中利用shell脚本条件执行linux命令
linux中利用shell脚本条件执行命令 在linux环境中,我们总会有一些命令需要经常用,例如经常跳转到某些目录下或者执行某些命令,输入一连串的命令是很烦的,此时我们可以预先写一些脚本然后根据我们 ...
- 四、Spring中使用@Conditional按照条件注册Bean
以前其实是写过@Condtional注解的笔记的,这里附上链接: Spring中的@conditional注解 但已经忘记的差不多了,所以今天再重新学习下,可以互补着学习 @Contional:按照一 ...
- MDK中利用宏定义__DATE__和__TIME__设置产品的代码固件版本
文章目录 前言 一.__DATE__和__TIME__是什么? 二.使用步骤 1.引入库 2.参考代码 总结 前言 STM32开发中,利用宏定义的__DATE__和__TIME__设置产品的代码固件版 ...
- Java 中利用Calendar类的方法判断当前年是闰年还是平年
分析以下需求,并用代码实现要求:利用Calendar类的方法判断当前年是闰年还是平年提示:方式1闰年:二月有29天将日期设置为3月1号,然后倒退1天至2月底,求出2月底是多少天方式2闰年条件:如果当前 ...
- KDD2021 | 推荐系统中利用深度哈希方法学习类别特征表示
本文分享一篇谷歌团队发表在KDD'21的推荐系统文章:不使用嵌入表的方式获得类别特征的表征用于推荐系统[1]. 本文结构组织如下: 背景 已有的类别特征嵌入方法 One-hot Full Embedd ...
- java sublist_java中利用List的subList方法实现对List分页(简单易学)
/** *//** * List分页 * 实现:利用List的获取子List方法,实现对List的分页 * @author 显武 * @date 2010-1-8 16:27:31 * */ impo ...
- Oracle里date和sysdate,关于oracle中利用sysdate比较的方法
在oracle中用来存储日期类型的数据叫做date 我们可以利用 SELECT SYSDATE FROM DUAL 即可调用oracle中本身自带的一个获取当前系统时间的一个函数 不过SYSDATE本 ...
- 在Excel中利用宏定义实现MD5加密和批量加密
想试试excel表格的批量插入,在网上找了一些方法,结合方法自己总结了下! 分为四步 1.下载宏文件[md5宏] 下载宏地址:https://pan.baidu.com/s/13YG ...
最新文章
- leetcode-440 字典序的第K小数字
- Linux查看CPU和内存使用情况详解
- 收藏!一篇文章搞懂项目管理
- 字符串的最大最小表示法 模板
- Xcode没有pch文件
- 国内Linux shell,管理你的 shell 环境 | Linux 中国
- 彻彻底底了解回调函数
- P1603 斯诺登的密码-字符串加法的妙用
- JS获取Audio音频的实时时间
- mysql sql语句 查询文章表,评论表(根据评论表文章评论次数排序查询出文章count(),group,left join)
- Java整合ORC识别验证码
- PADS中常用无模命令快捷键
- chemdraw怎么连接两个结构_ChemDraw如何连接两个片段?
- 计算机视觉论文-2021-05-28
- c语言高级编程培训,C语言高级编程
- [ZROJ-955]折纸 Solution
- windows10 安装
- 【Book 133】Illuminate-Harness the Positive Power of negative Thinking
- 地图兴趣点搜索一(基本流程)
- python之正则表达式及RE模块