C#特性以前的时候

本文介绍了C#中的特性使用,包括如何使用Attribute描述特性,以及它们如何被编译器识别并作为附加信息存放在元数据中供CLR使用。通过具体示例展示了特性如[DllImport]、[Conditional]和[Obsolete]的使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  C#特性以前的时候,用过C#中的特性,但只是会用,什么原理,有什么用这些问题不清楚,今天就腾出时间,学习了一下。

  C#中的特性使用Attribute描述。在使用时,就像是java中的批注一样。不过C#使用中括号。特性用来描述我们的数据。编译器能够识别这些特性,以附加信息的形式存放在生成的元数据中,供clr使用。

  下边看一个简单的应用view plainprint?

  static void Main(string[] args)

  { DisplayRunningMsg();DisplayDebugMsg();Trace("方法执行到结尾了!!");Console.Read();

  } [DllImport("User32.dll")] public static extern int MessageBox(int hParent, string msg, string Caption, int type);[Conditional("DEBUG")] private static void DisplayRunningMsg()

  { Console.WriteLine("This is debug");Console.WriteLine("开始运行Main子程序。当前时间是"+DateTime.Now);}

  [Conditional("DEBUG")] [Obsolete] private static void DisplayDebugMsg()

  { Console.WriteLine("该方法已经废弃啦!!!");}

  DllImport特新允许我们引入一个外部的dll,下边做一个函数的声明,我们就可以调用了。

  Conditional属性表示在该种条件下就执行下边的代码 所以[Conditional("DEBUG")]此种标识的方法就只有在调试的时候才会在执行。 [Obsolete]特性标记该方法已经废弃。

  运行上述代码输出(在debug模式下)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值