C# 特性
互联网 2022/6/29 9:54:01
特性:本身是一个类,如果是继承自Attribute 他就是特性
使用场景:几乎所有框架都用到了,MVC --- WebApi --EF -- IOC --AOP
C# 中在属性字段 方法 类上方使用“[ ]”来启用一个特性
系统自带特性
public class UseAttributeClass { //启用特性,这个特性表示此方法不再调试 [DebuggerStepThrough] public void DoMethod() { Console.WriteLine("1111"); } }
[Obsolete] //启用特性表示 弃用此类 会提示此类已过时 public class AttributeTestClass { }
[Obsolete] 可以传入参数:[Obsolete("提示信息",bool)] 第二个参数为bool值 如果为true 那么此类将直接无法使用 提示报错 给到提示信息
自定义特性 以及 调用
自定义特性标注上后 不会自动生效 需要使用反射来进行调用
通过反射查找类中的全部特性 ,再通过查找到的特性访问对应类 进行调用
object[]customAttributes = type.GetCustomAttributes(true);拥有两个参数 第一个参数为特性类型传入后会查找对应类型的特性,否则查找全部特性
//创建特性 class DefindAttribute:Attribute { public DefindAttribute(string showInfo) { Console.WriteLine(showInfo); } } //使用时可以省略后续的Attribute [Defind("这是自定义特性")] class UseAttibute { } //自定义特性的调用方法 class AttribteTest { Type type = typeof(UseAttibute); object[]customAttributes = type.GetCustomAttributes(true);//拥有两个参数 第一个参数为特性类型传入后会查找对应类型的特性,否则查找全部特性 foreach(object customAttribute in customAttributes) { DefindAttribute defindAttribute = customAttribute as DefindAttribute; if(defindAttribute!=null) { Console.WriteLine(defindAttribute.ShowInfo); } } }

关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[C# 特性]http://www.zyiz.net/tech/detail-331796.html
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2022-08-09.net 调用spring boot rest api 的100-Continue问题
- 2022-08-08C#控件随窗体大小变化
- 2022-08-08C# Json和对象的转换,序列化和反序列化
- 2022-08-08C# Task.Run() 启动方法总结
- 2022-08-08C#《原CSharp》第四回 人常见岁月更替 却难知人文相继
- 2022-08-08C#获取调用文件名,行号,方法
- 2022-08-08Chapter 05 - SpeakLine (C#篇)
- 2022-08-08Chapter 06 - SpeakLine (C# + delegate实现)
- 2022-08-08c# 解决线程间操作无效: 从不是创建控件的线程访问它