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

什么是特性?
特性(attribute)是一种允许我们向程序的程序集添加元数据的语言结构.它是用于保存程序结构信息的某种特殊类型的类.
     将应用了特性的程序结构叫做目标.
     设计用来获取和使用元数据的程序(对象浏览器)叫做特性的消费者
     .NET预定了很多特性,我们也可以声明自定义特性.

Obsolete特性(方法前):
可以使用Obsolete特性将程序结构标注为过期的,并且在代码编译时,显示警告信息.
格式:[ Obsolete( "警告信息", true)]//最后一个参数为true表示这个方法不能被调用了



Conditional特性(方法前):
是否屏蔽特定方法的调用,
System.Diagnostics;//所需命名空间  
格式: # define hong //如果定义了宏则调用,如果没有定义则不调用(宏声明在最外层).
        [ Conditional ( "hong" )]



DebuggerStepThrough特性(方法前)
可以跳过Debugger的单步调试,不让进入该方法(当我们确定这个方法没有任何错误的时候,可以使用这个)
 格式:[ DebuggerStepThrough ]



调用者信息特性(参数前):
using System.Runtime.CompilerServices;//导入命名空间
[ CallerFilePath ]:调用者的文件路径
[ CallerLineNumber ]:调用行数
[ CallerMemberName ]:调用者方法名称

(其他特性)
CLSCompliant:声明可公开的成员应该被编译器检查是否符合CLS.兼容的程序集可以被任何.NET兼容的语言使用
Serializable:声明结构可以被序列化.
NonSerialized:声明结构可不可以被序列化
DLLlmport:声明是非托管代码实现的.
WebMethod:声明方法应该被作为XML Web服务的一部分暴露
AttributeUsage:声明特性能应用到什么类型的程序结构.将这个特性应用到特性声明上.



特性的定义(图片引用自泰课在线)


特性类



使用特性的类

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值