C#学习之路(一):特性(Attribute)
引言
初学C#的小伙伴可能遇到以下情况:
[Conditional("DEBUG")]
public static void Message(string msg)
{
Console.WriteLine(msg);
}
这个中括号中的“标签”是什么?它是做什么用的?如何使用?
1、什么是特性(Attribute)
在C#中,特性是继承自 Attribute 基类的类,用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。所有继承自 Attribute 的类都可以用作其他代码块的一种“标记”。
这种“标签”可以控制其所修饰元素行为的某些方面。例如,大家都知道方法的可访问性是由 public、protected、internal 和 private 修饰符控制,C# 整合了这种能力,以便可以将用户定义类型的声明性信息附加到程序实体,并在运行时检索此类信息,从而实现控制其行为的目的。
2、使用方式
规定特性(Attribute)的语法如下:
[attribute(positional_parameters, name_parameter = value, ...)]
element
在相关声明element前的方括号内指定特性的名称以及任意自变量,attribute为特性名,posit