C#基础复习(四)特性和反射

本文介绍了C#中的特性(Attribute)和反射的概念。特性是一种用于标记程序元素行为的标签,包括预定义特性如AttributeUsage、Conditional和Obsolete,以及如何自定义特性。反射则允许程序动态访问和修改自身状态,通过反射可以获取类型信息、创建对象并调用方法。文中还讨论了反射的优缺点,强调其在提高灵活性和降低耦合性的同时,可能导致性能损失和代码可读性下降。
摘要由CSDN通过智能技术生成

        一·特性

        特性(Attribute)是一种标签,用于标记程序中的各种元素的行为信息。通常在要应用的元素前,增加[]来描述。

        .Net中主要提供了2种类型的特性:预定义特性和自定义特性。

        一)预定义特性

        .Net框架中主要提供了三种预定义特性:AttributeUsage,Conditional,Obsolete。

        1)AttributeUsage: 用来规定特性可应用到的项目类型。其语法如下:[AttributeUsage(validon, AllowMultiple=allowMultiple,Inherited=inherited)]。validon规定可防止的语言元素,可选值为枚举AttributeTargets的集合(例如AttributeTargets.Class类, AttributeTargets.Constructor构造器, AttributeTargets.Field域, AttributeTargets.Method方法, AttributeTargets.Property属性),默认值为AttributeTargets.All。allowMultiple表示该特性是否为多用的。inherited表示该特性是否可被继承。

        2)Conditional: 标记条件方法,根据指定的预处理标识符来判定是否编译(例如Debug和Trace)。例如[Conditional("DEBUG")]。

        3)Obsolete: 用于标记弃用的元素。语法有[Obsolete(message)], [Obsolete(messge, iserror)]。message用于描述信息,iserror为tru

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值