Computer >> Máy Tính >  >> Lập trình >> C#

Làm thế nào để xây dựng các thuộc tính tùy chỉnh trong C #?


Các thuộc tính được sử dụng để thêm siêu dữ liệu, chẳng hạn như hướng dẫn trình biên dịch và các thông tin khác như nhận xét, mô tả, phương thức và lớp vào chương trình.

.Net Framework cho phép tạo các thuộc tính tùy chỉnh có thể được sử dụng để lưu trữ thông tin khai báo và có thể được truy xuất tại thời điểm chạy.

Một thuộc tính tùy chỉnh mới có nguồn gốc từ lớp 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

Hãy để chúng tôi xây dựng một thuộc tính tùy chỉnh có tên DeBugInfo, thuộc tính này lưu trữ thông tin thu được bằng cách gỡ lỗi bất kỳ chương trình nào.

Lớp DeBugInfo có ba thuộc tính riêng để lưu trữ ba thông tin đầu tiên và thuộc tính chung để lưu thông báo. Do đó, số lỗi, tên nhà phát triển và ngày xem xét là các tham số vị trí của lớp DeBugInfo và thông báo là một tham số tùy chọn hoặc có tên.

Ví dụ

Hãy để chúng tôi xem cách thực hiện -

//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;
      }
   }
}