Các chỉ thị tiền xử lý đưa ra hướng dẫn để trình biên dịch xử lý các thông tin trước khi biên dịch thực sự bắt đầu.
Tất cả các chỉ thị tiền xử lý bắt đầu với #, và có khoảng trắng trước khi xuất hiện một chỉ thị tiền xử lý trên một dòng. Chỉ thị tiền xử lý là không câu lệnh, vì vậy nó không kết thúc bằng dấu chấm phẩy.
Biên dịch C # không có một tiền xử lý riêng biệt. Trong C # các chỉ thị tiền xử lý được sử dụng để giúp đỡ trong việc lập điều kiện. Không giống như chỉ thị trong C và C ++, chúng không được sử dụng để tạo các chuỗi lệnh. Một chỉ thị tiền xử lý chỉ ghi trên một dòng.
Chỉ thị tiền xử lý trong C #
Bảng sau đây liệt kê các chỉ thị tiền xử lý có sẵn trong C #:
Chỉ thị tiền xử lý | Mô tả |
#define | Nó định nghĩa một chuỗi ký tự, gọi là biểu tượng. |
#undef | Nó cho phép bạn hủy định nghĩa một biểu tượng. |
#if | Nó cho phép thử nghiệm một hoặc nhiều biểu tượng để xem chúng có giá trị đúng hay không. |
#else | Nó cho phép tạo ra một chỉ thị có điều kiện phù hợp với # if. |
#elif | Nó cho phép tạo ra một chỉ thị có điều kiện hợp lý. |
#endif | Chỉ định cuối của một chỉ thị có điều kiện. |
#line | Nó cho phép bạn sửa đổi số dòng của trình biên dịch và (tùy chọn) các tên tập tin đầu ra cho các lỗi và cảnh báo. |
#error | Nó cho phép tạo ra một lỗi từ một vị trí cụ thể trong mã của bạn. |
#warning | Nó cho phép tạo ra một mức độ một cảnh báo từ một vị trí cụ thể trong mã của bạn. |
#region | Nó cho phép bạn chỉ định một khối mã mà bạn có thể mở rộng hoặc thu gọn khi sử dụng tính năng phác thảo của Visual Studio Code Editor. |
#endregion | Nó đánh dấu sự kết thúc của một khối #region. |
Tiền tố #define
Chỉ thị #define tạo ra các hằng số tượng trưng. Cú pháp của nó là như sau:
#define symbol
Chương trình sau đây minh họa điều này:
#define PI using System; namespace PreprocessorDAppl { class Program { static void Main(string[] args) { #if (PI) Console.WriteLine("PI da duoc dinh nghia"); #else Console.WriteLine("PI chua duoc dinh nghia"); #endif Console.ReadKey(); } } }
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra các kết quả như sau:
PI da duoc dinh nghia
Chỉ thị có điều kiện
Bạn có thể sử dụng chỉ thị # if để tạo ra một chỉ thị có điều kiện. Chỉ có điều kiện rất có ích cho việc kiểm tra một hoặc nhiều biểu tượng xem chúng có giá trị đúng không. Nếu chúng có giá trị đúng, trình biên dịch sẽ đánh giá tất cả các mã giữa #ìf và chỉ thị tiếp theo.
Cú pháp cho thị có điều kiện là:
#if symbol [operator symbol]...
Trường hợp, biểu tượng là tên của các biểu tượng bạn muốn kiểm tra. Bạn có thể sử dụng true và false hoặc thêm vào trước các biểu tượng toán tử phủ định.
- == (bằng nhau)
- != (ko bằng)
- && (và)
- || (hoặc)
Bạn cũng có thể gộp nhóm các biểu tượng và khai thác dấu ngoặc đơn. Chỉ có điều kiện được sử dụng để biên dịch mã cho một debug build hoặc khi biên dịch cho một cấu hình cụ thể. Một chỉ thị có điều kiện bắt đầu #if, nếu muốn rõ ràng thì với một chỉ thị #endif.
Các chương trình sau minh họa sử dụng các chỉ thị có điều kiện:
#define DEBUG #define VC_V10 using System; public class TestClass { public static void Main() { #if (DEBUG && !VC_V10) Console.WriteLine("DEBUG da duoc dinh nghia"); #elif (!DEBUG && VC_V10) Console.WriteLine("VC_V10 da duoc dinh ngia"); #elif (DEBUG && VC_V10) Console.WriteLine("DEBUG va VC_V10 da duoc dinh nghia"); #else Console.WriteLine("DEBUG va VC_V10 chua duoc dinh nghia"); #endif Console.ReadKey(); } }
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra các kết quả như sau:
DEBUG va VC_V10 da duoc dinh nghia
Chúc bạn thành công!