C# 常用特性(Attribute)
使用特性,可以有效地将元数据或声明性信息与代码(程序集、类型、方法、属性等)相关联。 将特性与程序实体相关联后,可以在运行时使用反射这项技术查询特性。
在 C# 中,通过用方括号 ([]) 将特性名称括起来,并置于应用该特性的实体的声明上方以指定特性。
按照惯例,所有特性名称都以 Attribute 结尾。 但是,面向运行时的几种语言(如 Visual Basic 和 C#)无需指定特性的全名。 例如,若要初始化 System.ObsoleteAttribute,只需将它引用为 Obsolete 即可。
指定方法实现的属性MethodImplAttribute#
同步方法:
- [MethodImplAttribute(MethodImplOptions.Synchronized)]标签应用到实例方法,相当于对当前实例加锁 lock(this)。
- [MethodImplAttribute(MethodImplOptions.Synchronized)]标签应用到静态方法,相当于对当前类型加锁。如 WithDraw 是静态方法,就相当于 lock (typeof(Account))
标记不再使用的程序元素ObsoleteAttribute#
过时警告:
- [ObsoleteAttribute("过时方法、属性、类等,请使用新xxx方法、属性、类等", false)]
- [ObsoleteAttribute()]或[ObsoleteAttribute]
过时错误:
- [ObsoleteAttribute("过时方法、属性、类等,请使用新xxx方法、属性、类等", true)]
指定属性或事件的说明DescriptionAttribute#
DescriptionAttribute更多用于显示枚举变量的中文注释,反射枚举元素的DescriptionAttribute的值显示到界面。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从零实现富文本编辑器#3-基于Delta的线性数据结构模型
· 记一次 .NET某旅行社酒店管理系统 卡死分析
· 长文讲解 MCP 和案例实战
· Hangfire Redis 实现秒级定时任务,使用 CQRS 实现动态执行代码
· Android编译时动态插入代码原理与实践
· 使用TypeScript开发微信小程序(云开发)-入门篇
· 没几个人需要了解的JDK知识,我却花了3天时间研究
· C#高性能开发之类型系统:从 C# 7.0 到 C# 14 的类型系统演进全景
· 管理100个小程序-很难吗
· 在SqlSugar的开发框架中增加对低代码EAV模型(实体-属性-值)的WebAPI实现支持