请问C#中的特性有什么用呢?就是方法或字段上面的[]

2025-02-24 03:05:49
推荐回答(2个)
回答1:

先看一下 MSDN 文档对它的描述:
  公共语言运行时允许你添加类似关键字的描述声明,叫做 Attributes。它对程序中的元素进行标注,如类型、字段、方法和属性等。Attributes 和 Microsoft .NET Framework 文件的元数据保存在一起,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。

 

特性被用来处理多种问题,比如序列化、程序的安全特征、防止即时编译器对程序代码进行优化从而代码容易调试等等。

 

比如,我们想描述一个类可以被序列化,那么应该:

[System.Serializable]
public class Test 

}

 

再比如,我们想描述一个属性已经被废弃(例如在低版本中曾经有这个属性,但高版本的接口中已经废弃,出于兼容性考虑依旧保留声明而不是单纯的把代码段删除了)

class Test
{
    [System.Obsolete] 
    public string A
    {
        get;
        set;  
    }
}

回答2:

告诉编译器该如何编译,比如webserver