阅读量:0
在C#中,Attribute(特性)是一种用于向程序元素(如类、方法、属性等)添加元数据信息的机制。Attribute以方括号的形式定义在程序元素的上方,如下所示:
[AttributeUsage(AttributeTargets.Class)] public class CustomAttribute : Attribute { // 属性 public string Name { get; set; } // 构造函数 public CustomAttribute(string name) { Name = name; } } // 使用自定义特性 [CustomAttribute("TestClass")] public class MyClass { // 属性 [CustomAttribute("TestProperty")] public string MyProperty { get; set; } // 方法 [CustomAttribute("TestMethod")] public void MyMethod() { // 方法体 } }
在上面的示例中,定义了一个名为CustomAttribute的自定义特性,并将其应用于类MyClass和其中的属性和方法。可以在自定义特性类中定义属性和构造函数,以便在应用特性时传递参数。
要获取程序元素上的特性信息,可以使用反射机制。例如,可以通过以下代码获取MyClass类上的CustomAttribute特性信息:
CustomAttribute attribute = (CustomAttribute)Attribute.GetCustomAttribute(typeof(MyClass), typeof(CustomAttribute)); if (attribute != null) { Console.WriteLine(attribute.Name); }
通过正确使用Attribute,可以为程序元素添加额外的元数据信息,以便在运行时动态地获取和处理这些信息。