Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
Các giải pháp lập trình CSharp- P12: Các giải pháp lập trình C# khảo sát chiều rộng của thư viện lớp .NET Framework và cung cấp giải pháp cụ thể cho các vấn đề thường gặp. Mỗi giải pháp được trình bày theo dạng “vấn đề/giải pháp” một cách ngắn gọn và kèm theo là các ví dụ mẫu. | 111 Chương 3 Miền ứng dụng cơ chế phản chiếu và siêu dữ liệu Đặc tính có được thừa kế bởi các kiểu dẫn xuất hay không Đặc tính cung cấp một cơ chế tổng quát cho việc kết hợp thông tin khai báo siêu dữ liệu với các phần tử chương trình. Siêu dữ liệu này nằm trong assembly đã được biên dịch cho phép các chương trình thu lấy nó thông qua cơ chế phản chiếu lúc thực thi xem mục 3.14. Các chương trình khác đặc biệt là CLR sử dụng thông tin này để xác định cách thức tương tác và quản lý các phần tử chương trình. Để tạo một đặc tính tùy biến thì hãy dẫn xuất một lớp từ lớp cơ sở trừu tượng System.Attribute. Các lớp đặc tính tùy biến phải là public và có tên kết thúc bằng Attribut e . Một đặc tính tùy biến phải có ít nhất một phương thức khởi dựng công khai. Các đối số của phương thức khởi dựng sẽ trở thành các đối số vị trí positional parameter của đặc tính. Như với bất kỳ lớp nào khác bạn có thể khai báo nhiều phương thức khởi dựng cho phép người dùng tùy chọn sử dụng các tập khác nhau của các đối số vị trí khi áp dụng đặc tính. Bất kỳ thuộc tính và trường đọc ghi công khai nào do đặc tính khai báo đều trở thành đối số được nêu tên named parameter . Để điều khiển cách thức người dùng áp dụng đặc tính hay áp dụng đặc tính AttributeUsageAttribute cho đặc tính tùy biến của bạn. Đặc tính AttributeUsageAttribute hỗ trợ một đối số vị trí và hai đối số được nêu tên được mô tả trong bảng 3.3. Các giá trị mặc định chỉ định giá trị sẽ được áp dụng cho đặc tính tùy biến của bạn nếu bạn không áp dụng AttributeUsageAttribute hoặc không chỉ định giá trị cho một thông số. Bảng 3.3 Các thành viên thuộc kiểu liệt kê AttributeUsage Thông số Kiểu Mô tả Mặc định Một thành viên thuộc kiểu liệt kê ValidOn vị trí System.AttributeTargets chỉ định phần tử chương trình mà đặc tính sẽ có hiệu lực trên đó. AttributeTargets.All AllowMultiple được nêu Đặc tính có thể được chỉ định nhiều false tên lần cho một phần tử hay không. Inherited được nêu tên Đặc tính có được thừa kế bởi các lớp dẫn xuất hay .