C# 特性
2022/6/29 14:23:40
本文主要是介绍C# 特性,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
特性:本身是一个类,如果是继承自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); } } }
这篇关于C# 特性的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#