随笔 - 90  文章 - 0 评论 - 94 阅读 - 60万

特性,就是为目标元素,可以是数据集、模块、类、属性、方法、甚至函数参数等加入附加信息,类似于注释,但是可以在运行期以反射的方式获得。定制特性主要应用在序列化、编译器指令、设计模式等方面。

 

多个特性可以应用于同一元素,特性间以逗号隔开,以下表达规则有效:[AttributeUsage][ Flags]、[AttributeUsage, Flags]、[Flags, AttibuteUsageAttribute]、[AttributeUsage(), FlagesAttribute()]

attibute实例,是在编译期进行初始化,而不是运行期。

C#允许以指定的前缀来表示特性所应用的目标元素,建议这样来处理,因为显式处理可以消除可能带来的二义性。例如:

复制代码
namespace Anytao.net 
{
    [assembly: MyAttribute(
1)]          //应用于程序集
    [moduel: MyAttribute(2)]            //应用于模块
    pubic class Attribute_how2do
    {
        
//
    } 
}
复制代码

 

AttributeUsageAttribute特性的作用:Specifies the usage of another attribute class.

往往在定义新特性时应用以前的特性。

复制代码
[AttributeUsageAttribute(AttributeTarget.All),
AllowMultiple 
= true
Inherited 
= true]
class MyNewAttribute: System.Attribute
{
   
//
复制代码

 

  1. 特性不会影响应用元素的任何功能,只是约定了该元素具有的特质。
  2. 所有非抽象特性必须具有public访问限制。
  3. 特性常用于编译器指令,突破#define, #undefine, #if, #endif的限制,而且更加灵活。
  4. 特性常用于在运行期获得代码注释信息,以附加信息来优化调试。
  5. 特性可以应用在某些设计模式中,如工厂模式。
  6. 特性还常用于位标记,非托管函数标记、方法废弃标记等其他方面。

下面是很详细的Attribute应用教程:

Attribute在.net编程中的应用(一)
Attribute在.net编程中的应用(二)
Attribute在.NET编程中的应用(三)
Attribute在.NET编程中的应用(四)
Attribute在.NET编程中的应用(五)
Attribute在.NET编程中的应用(六)

posted on   MainTao  阅读(9383)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示