没有合适的资源?快使用搜索试试~ 我知道了~
前言 本文主要给大家介绍了关于C#基础之Attribute和反射的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 Attribute(特性) Attribute是C#的一种语言特性,用于为各种实体(class,field,property)附加一些说明性信息, 并且可以在运行时环境中检索这些信息(通过反射)。 所有的Attribute必须继承自Attribute类,按照约定,特性类的名称带有 Attribute 后缀。使用特性时可以包含或省略此后缀。 AttributeUsage AttributeUsage是Attribute的Attribute,用于给自定
资源详情
资源评论
资源推荐
C#基础学习系列之基础学习系列之Attribute和反射详解和反射详解
前言前言
本文主要给大家介绍了关于C#基础之Attribute和反射的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详
细的介绍吧。
Attribute(特性特性)
Attribute是C#的一种语言特性,用于为各种实体(class,field,property)附加一些说明性信息, 并且可以在运行时环境中检索
这些信息(通过反射)。
所有的Attribute必须继承自Attribute类,按照约定,特性类的名称带有 Attribute 后缀。使用特性时可以包含或省略此后缀。
AttributeUsage
AttributeUsage是Attribute的Attribute,用于给自定义的Attribute加一些限定。
AttributeTargets
AllowMultiple
Inherited
AttributeTargets指定你这个attribute限制用于哪类实体上,在这里,实体是指: class、method、constructor、field、
property、GenericParameter或者用All,表明可用于所有实体。每个target标记可以用|链接,如
AttributeTargets.Class|AttributeTargets.Method表示这个attribute可用于class或者method。
下面例子表明了每种target的用法:
using System;
namespace AttTargsCS {
// This attribute is only valid on a class.
[AttributeUsage(AttributeTargets.Class)] public class ClassTargetAttribute : Attribute {
}
// This attribute is only valid on a method.
[AttributeUsage(AttributeTargets.Method)] public class MethodTargetAttribute : Attribute {
}
// This attribute is only valid on a constructor.
[AttributeUsage(AttributeTargets.Constructor)] public class ConstructorTargetAttribute : Attribute {
}
// This attribute is only valid on a field.
[AttributeUsage(AttributeTargets.Field)] public class FieldTargetAttribute : Attribute {
}
// This attribute is valid on a class or a method.
[AttributeUsage(AttributeTargets.Class|AttributeTargets.Method)] public class ClassMethodTargetAttribute : Attribute {
}
// This attribute is valid on a generic type parameter.
[AttributeUsage(AttributeTargets.GenericParameter)] public class GenericParameterTargetAttribute : Attribute {
}
// This attribute is valid on any target.
[AttributeUsage(AttributeTargets.All)] public class AllTargetsAttribute : Attribute {
}
[ClassTarget] [ClassMethodTarget] [AllTargets] public class TestClassAttribute {
[ConstructorTarget] [AllTargets] TestClassAttribute() {
}
[MethodTarget] [ClassMethodTarget] [AllTargets] public void Method1() {
}
[FieldTarget] [AllTargets] public int myInt;
public void GenericMethod<
[GenericParameterTarget, AllTargets] T>(T x) {
weixin_38739942
- 粉丝: 5
- 资源: 954
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 沈丘盛世龙门图纸符合规范化
- HM3400-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 基于python+streamlit联邦学习进行高校学生成绩预测研究python源码+项目说明+模型+数据.zip
- HM3400D-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- HM3400B-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- spring-boot示例
- 搜集火星资源.py
- JAR应用启动停止脚本化解决方案.zip
- 配合eclipse svn插件subclipse-4.3.4版本的javahl
- Bash脚本教程:如何优雅地停止JAR服务.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0