如何在C#中构造自定义属性?

属性用于将元数据(例如编译器指令)和其他信息(例如注释,描述,方法和类)添加到程序。

.Net Framework允许创建自定义属性,这些自定义属性可用于存储声明性信息,并可在运行时进行检索。

从System.Attribute类派生一个新的自定义属性。

//a custom attribute BugFix to be assigned to a class and its members
[AttributeUsage(
AttributeTargets.Class |
AttributeTargets.Constructor |
AttributeTargets.Field |
AttributeTargets.Method |
AttributeTargets.Property,
AllowMultiple = true)]

public class DeBugInfo : System.Attribute

让我们构造一个名为DeBugInfo的自定义属性,该属性存储通过调试任何程序获得的信息。

DeBugInfo类具有用于存储前三个信息的三个私有属性和用于存储消息的公共属性。因此,错误编号,开发人员的姓名和检查日期是DeBugInfo类的位置参数,消息是可选的或命名的参数。

示例

让我们看看如何-

//a custom attribute BugFix to be assigned to a class and its members
[AttributeUsage(
AttributeTargets.Class |
AttributeTargets.Constructor |
AttributeTargets.Field |
AttributeTargets.Method |
AttributeTargets.Property,
AllowMultiple = true)]

public class DeBugInfo : System.Attribute {
   private int bugNo;
   private string developer;
   private string lastReview;
   public string message;

   public DeBugInfo(int bg, string dev, string d) {
      this.bugNo = bg;
      this.developer = dev;
      this.lastReview = d;
   }

   public int BugNo {
      get {
         return bugNo;
      }
   }

   public string Developer {
      get {
         return developer;
      }
   }

   public string LastReview {
      get {
         return lastReview;
      }
   }
   public string Message {
      get {
         return message;
      }

      set {
         message = value;
      }
   }
}