Mục lục:
Định nghĩa - Thuộc tính có điều kiện có nghĩa là gì?
Thuộc tính có điều kiện là một thẻ được sử dụng để đánh dấu một phương thức hoặc lớp có sự thực thi phụ thuộc vào định nghĩa của định danh tiền xử lý.
Một thuộc tính có điều kiện chỉ ra một điều kiện để xác định biên dịch có điều kiện trong đó các phương thức được gọi có chọn lọc trên cơ sở định nghĩa các ký hiệu. Nó chỉ thị cho trình biên dịch biên dịch (thành Ngôn ngữ trung gian của Microsoft) hoặc không biên dịch các khối mã cụ thể, dựa trên một điều kiện - có hay không xác định một ký hiệu biên dịch có điều kiện cụ thể. Nếu các ký hiệu cụ thể chưa được xác định tại thời điểm chúng được gọi, thì các lệnh gọi đến phương thức hoặc lớp đó sẽ bị trình biên dịch bỏ qua.
Techopedia giải thích thuộc tính có điều kiện
Một thuộc tính có điều kiện có các đặc điểm sau:
- Nó có thể được áp dụng cho các phương thức và các lớp, nhưng chỉ khi chúng có nguồn gốc từ một thuộc tính.
- Trong khi áp dụng thuộc tính có điều kiện cho một lớp, lớp thuộc tính sẽ chỉ được phát ra siêu dữ liệu nếu biểu tượng biên dịch có điều kiện được xác định.
- Nó nhận một tham số, đó là biểu tượng định danh điều khiển quá trình biên dịch.
- Các đối số được truyền cho một phương thức có điều kiện hoặc lớp thuộc tính sẽ được trình biên dịch kiểm tra kiểu.
- Nó hoàn toàn được chăm sóc bởi trình biên dịch chứ không phải bởi thời gian chạy.
- Nó không thể được áp dụng cho một phương thức được sử dụng trong biểu thức tạo đại biểu.
- Nó không ảnh hưởng đến mã được tạo cho phương thức có điều kiện, nhưng không ảnh hưởng đến lệnh gọi phương thức.
Một thuộc tính có điều kiện cung cấp một mẫu lập trình khai báo và giúp dễ dàng duy trì mã nguồn. Bằng cách áp dụng một thuộc tính có điều kiện ở cấp phương thức, mã nguồn dễ đọc hơn. Người gọi một phương thức không cần lấy mã bổ sung để biên dịch có điều kiện. Một thuộc tính có điều kiện được sử dụng để cho phép các chức năng theo dõi và ghi nhật ký trong các bản dựng gỡ lỗi bằng cách sử dụng mã định danh DEBUG để hiển thị và ghi nhật ký thông tin chẩn đoán liên quan đến ứng dụng. Ngoài ra, nó giúp phân tách logic liên quan đến bản dựng gỡ lỗi (trong các hệ thống được sử dụng để phát triển) khỏi các bản dựng phát hành, được triển khai trong các trang web và ứng dụng. Để duy trì nhiều phiên bản (với các tính năng được chọn trong một số phiên bản) của phần mềm mà không cần sao chép mã, biên dịch có điều kiện tạo thành kỹ thuật phù hợp theo đó mã nguồn chính duy nhất được duy trì cho nhiều phiên bản dựa trên các ký hiệu tương ứng được xác định cho chúng.
Sau đây là một số quy tắc phải tuân theo trong khi sử dụng thuộc tính có điều kiện:
- Một phương thức có điều kiện bên trong một khai báo lớp hoặc cấu trúc phải có kiểu trả về là void.
- Trong khi sử dụng nhiều định danh làm thuộc tính có điều kiện, việc đưa vào (các) phương thức dựa trên kết quả của logic OR hoặc logic AND trên các ký hiệu được xác định.
- Nó không thể được chỉ định trên một phương thức trong một khai báo giao diện.
- Một phương pháp có điều kiện không thể đi trước từ khóa "ghi đè", nhưng nó có thể là ảo. Nếu bị ghi đè, nó được coi là một điều kiện ngầm.
- Các biểu tượng được xem xét để biên dịch có điều kiện có thể được định nghĩa là các tùy chọn dòng lệnh của trình biên dịch hoặc là các biến môi trường từ hệ điều hành hoặc là các pragma (sử dụng chỉ thị tiền xử lý "#define") trong mã nguồn.
- Không giống như C ++, định nghĩa các ký hiệu trong C # có thể theo bất kỳ thứ tự nào và do đó thứ tự giữa "#define" và một phương thức có điều kiện phải được đặt đúng.
Mặc dù việc sử dụng "#if và #endif" tạo thành một tùy chọn thay thế cho thuộc tính có điều kiện, nhưng cách sau cung cấp một cách tiếp cận sạch hơn, thanh lịch và ít bị lỗi hơn so với trước đây. Trong nội bộ, sự khác biệt là trong khi sử dụng một thuộc tính có điều kiện cho một phương thức, phương thức vẫn sẽ là một phần của cụm và không được tải. Nhưng trong trường hợp #if / #endif, phương thức sẽ không hiển thị trong chính cụm.
Định nghĩa này được viết trong bối cảnh của C #