当前位置:首页 > 理财有道

attributeusage .Net 特性 attribute 学习 ----自定义特性

有哪些特点?

[过时("不要使用无参数构造函数",true)]放在方法上,方法不能使用。

[Serializable]放在类的顶部。此类可用于序列化和反序列化。

在命名空类、方法、属性、字段和枚举时使用括号[]

自定义属性,它是一个类:它必须继承属性或属性的一般类

公共类大小属性:属性//这是一个自定义属性

{

public SizeAttribute()

{

控制台。WriteLine("这是SizeAttribute的构造函数");

}

}

此功能已创建

在其他班级,如学生班

[SizeAttribute] //在类上写入属性

公共班级学生

{

[SizeAttribute] //在属性上写入属性

public int Id { setget}

公共字符串名称{ set获取}

[SizeAttribute] //在方法上写入属性

公共void Show()

{

控制台。写线(“显示”)

}

}

当然,特征也可以有一种方式来描述自己的特征

就是写在特征上

[属性用法(属性目标。All,AllowMultiple =false,Inherited =true)]

公共类大小属性:属性

{

}

//表示当前特性包含的所有类型都可以使用,只能单独使用,并且可以继承

特征:

1.当程序被编译和执行时,特性和注释的效果是相同的,没有任何区别

2.编译后的特征是元数据,特征只有反映出来才能使用。

3.功能可以做很多功能,比如权限检测、属性验证、封装枚举等。

4.要素是一个类,可以用作标记元素。编译时在元数据中生成,平时不影响程序运行,除非通过反射主动搜索。

可以获得一些额外的信息和操作,提供了更丰富的扩展空。功能可以在不损坏类型包的情况下添加附加功能。

例:有一个学生班,希望增加的学生不能少于12岁,20岁以上有特色

//学生班

公共班级学生

{

public int Id { get设置;}

公共字符串名称{ get设置;}

public int Age { get设置;}

[过时(“不要使用无参数构造函数”,true)] //这个特性是不能使用无参数构造函数

公立学生()

{ }

公共学生(整数,字符串名,整数)

{

这个。Id = id

这个。Name = name

[ControlAgeAttribute (_ vmin = 12,_ VMAX = 30)]//要判断年龄,如果年龄小于20且大于12,请在该属性上放置以下用户定义的特征。

这个。年龄=年龄;

}

公共void Show()

{

控制台。WriteLine("此show方法");

}

}

//年龄控制特征:特征命名标准——属性随名

公共类控件属性:属性

{

public int _ vMin { get设置;}//最低年龄

public int _ vMax { get设置;}//最大年龄

public bool CompareAge(int age)

{

返回年龄>。_vMin &。& amp年龄<。_vMax?true:false;//

}

}

//反射使用特性-使用静态方法

公共静态类管理

{

公共静态布尔比较管理(本学生学习)

{

bool结果= false

type type type = type of(stu);//首先获取类型

ProperyInfo prop = type。年龄。//通过反射获取年龄属性

If (prop。已定义(类型为(ControlAgeAttribute),true)//确定当前属性是否具有ControlAgeAttribute属性。

{

控件属性=(控件属性)属性。GetCustomAttribute(type of(controlage Attribute),true);

//获取特征

结果=属性。CompareAge(stu。年龄);

返回结果;//获取结果并返回

}

返回结果;

}

}

//在控制台Main方法中执行

静态void Main(字符串[]参数)

{

学生学生=新生(12,“哈哈哈”,15);

控制台。WriteLine(学生。CompareAgeManage());//15在12到20之间,所以是True

}

原始链接:

https://www.cnblogs.com/Rookieflying/p/10372270.html

版权声明:本文收集自网友或由网友提供。如有侵权,请告知版主或留言,微信官方账号立即删除。

1.《attributeusage .Net 特性 attribute 学习 ----自定义特性》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《attributeusage .Net 特性 attribute 学习 ----自定义特性》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/caijing/1506438.html

上一篇

原味内衣裤 台一男子专偷女子“原味”内衣裤 还要穿上“享受”

下一篇

1994世界杯 世界杯揭秘:1994世预赛,法国队败于内讧!坎通纳诀别世界杯!

水晶手链如何打结 小学生自制水晶手链送给志愿者

武汉晚报3月3日,武汉中华奇石勒博物馆举办公园教室水晶科普活动。中国地质大学宝石矿物学博士程带领20名小学生走进水晶的神奇世界,教他们制作水晶手镯;孩子们给华中师范大学马克思主义学院知识、旅游、花园志愿者团队的学生志愿...

西安公租房申请条件 新政丨西安新毕业大学生可住公租房 申请条件看这里!

西安公租房申请条件 新政丨西安新毕业大学生可住公租房 申请条件看这里!

为鼓励应届毕业生和大学教职工在Xi安落户创业,Xi安将对3年内应届毕业生或5年内985、211院校应届毕业生免于公租房资格考试。同时,开展高校青年教师周转房试点工作!  教师周转房  新政明确,对于拥有自有土地(包括划...

个性化教学 教育个性化还是教学差异化?学生能否决定所学内容是区分关键

个性化教学 教育个性化还是教学差异化?学生能否决定所学内容是区分关键

新华社北京10月27日电“个性化学习是在工厂化教育体系的背景下产生的。似乎每一个新的学校或机构都把它作为宣传亮点。但事实上,并不是每个学校都实施了个性化学习的理念。”近日,在洋葱数学2018HOPE优秀教师培训活动中,...

个性化教育的内容 教育个性化还是教学差异化?学生能否决定所学内容是区分关键

新华社北京10月27日电“个性化学习是在工厂化教育体系的背景下产生的。似乎每一个新的学校或机构都把它作为宣传亮点。但事实上,并不是每个学校都实施了个性化学习的理念。”近日,在洋葱数学2018HOPE优秀教师培训活动中,...

湖南大学生 湖南大学生,艾滋病患者8年升37倍

  • 湖南大学生 湖南大学生,艾滋病患者8年升37倍
  • 湖南大学生 湖南大学生,艾滋病患者8年升37倍
  • 湖南大学生 湖南大学生,艾滋病患者8年升37倍

大学生医疗保险 @毕业生 你的大学生医保待遇8月31日截止 怎么办看这里

华龙。com 8月10日13时24分,今年的毕业生注意到,医疗保险待遇将于8月31日到期。毕业后医保应该怎么拿走?今天,重庆市人力资源和社会保障局给出了正式答案。毕业后医保怎么办?市人民社会保障局相关负责人表示,有用人...

全国大学生四六级 关于2019年下半年全国大学英语四、六级考试报名的公告

全国大学生四六级 关于2019年下半年全国大学英语四、六级考试报名的公告

2019年下半年,笔试(以下简称CET)和口试(以下简称CET-SET)将分别于12月14日和11月23-24日举行。从这次考试开始,CET和CET-SET在我省开始使用全国网报系统。要求考生严格遵守报名规定和程序,严...

上海大学生电影节 惟新才榜 | 第四届“汇创青春”上海大学生“Cine Next青年影展”开幕,我院学子揽获佳绩

  • 上海大学生电影节 惟新才榜 | 第四届“汇创青春”上海大学生“Cine Next青年影展”开幕,我院学子揽获佳绩
  • 上海大学生电影节 惟新才榜 | 第四届“汇创青春”上海大学生“Cine Next青年影展”开幕,我院学子揽获佳绩
  • 上海大学生电影节 惟新才榜 | 第四届“汇创青春”上海大学生“Cine Next青年影展”开幕,我院学子揽获佳绩