理解C# Attribute
1、Attribute与Property
Attribute是特性,Property是属性。
2、Attribute与注释
注释:是给程序员看的,编译的时候会去掉这些信息,也就是说,程序集中没有注释的内容。
Attribute:会被编译到程序集中,在程序集的元数据中,在加载程序集的时候,可以从它的元数据中提取出这些信息。
3、说了那么多,考虑下,它解决什么问题?
考虑下面的需求,一个工具类提供了很多静态方法,甲乙两个程序员合作完成,理所当然,应该标识出哪些是甲写的,哪些是乙写的,用于统计。最笨的加注释,但是它有两个问题:a、编译后生成的程序集中,没有了这些注释内容;b、只能通过人工去统计甲乙完成的方法,有没有办法通过程序自动化统计呢?
4、使用Attribute,对源代码打上标记,这些标记生成在程序集中,做个小工具去统计甲乙完成的方法。
5、特别注意:表面上,Attribute和public,static一样,像个修饰符。实际上,Attribute不是修饰符,而是一个特殊的类,这个类实例化,然后附着在目标对象上。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人