Các chỉ thị tiền xử lí trong C#
Bên cạnh các từ khoá thường dùng, C# có 1 số lệnh tiền xử lí .những lệnh này không bao
giờ được biên dịch thành bất kì dòng lệnh nào trong mã thực thi. thay vào đó nó có ảnh
hưởng đến các khía cạnh của quy trình biên dịch. ví dụ , ta có thể dùng chỉ dẫn tiền xử lí
để ngăn trình biên dịch biên dịch một phần đoạn mã nào đó .
Chỉ thị tiền xử lí được phân biệt bằ
ng cách bắt đầu với dấu # .
#define và #undef
#define được dùng ví dụ như :
#define DEBUG
Cho trình biên dịch biết biểu tượng với tên được đặt ( DEBUG) tồn tại. nó hơi giống như
khai báo biến nhưng nó không có giá trị - mà chỉ tồn tại.
Trái ngược với #define là #undef : bỏ định nghĩa biểu tượng : #undef DEBUG
Ta cần đặt các chỉ thị #define và #undef vào đầu tập tin nguồn trước bất kì khai báo đối
tượng được biên dịch.
lưu ý : các chỉ thị tiền xử lí không có dấu ' ; ' ở cuối câu lệnh thường thì các lệnh chỉ trên
1 dòng . nếu nó thấy 1 chỉ thị tiền xử lí, nó xem lệnh kết tiếp sẽ nằm ở dòng kế tiếp.
#if,#elif,#else,#endif
các chỉ
thị này thông báo cho trình biên dịch biết liệu có biên dịch đoạn mã hay không, ví
dụ :
int DoSomeWork(double x)
{
// do something
#if DEBUG
Console.WriteLine("x is " + x);
#endif
}
Dòng lệnh Console.Writeline chỉ được thực hiện khi DEBUG được định nghĩa.( bằng chỉ
Nếu trình biên dịch thấy #warning nó sẽ trình bày chuỗi xuất iện phía sau nó đến người
dùng,sau đó biên dịch tiếp. nếu thấy chỉ thi #error ,nó sẽ trình bày chuỗi con đến người
dùng nếu đó là 1 thông báo lỗi biên dịch , sau đó ngừng biên dịch
#if DEBUG && RELEASE
#error "You've defined DEBUG and RELEASE simultaneously! "
#endif
#warning "Don't forget to remove this line before the boss tests the code! "
Console.WriteLine("*I hate this job*");
#region và #endregion
Các chỉ thị #region và #endregion đưọc dùng để đánh dấu khối mã được xem như là khối
đơn với tên được đặt như :
#region Member Field Declarations
int x;
double d;
Currency balance;
#endregion
chỉ thị này không có ảnh hưởng nào đến trình biên dịch nhưng nó hữu ích cho 1 số trình
biên tập bao gồm cả trình biên tập của VS.NET. trình biên tập có thể dùng chỉ thị naỳ để
gói gọn mã của ta trên màn hình.
# line
chỉ thị #line có thể được dùng thay cho tên tập tin và thông tin số dòng mà xuất bởi trình
biên dịch trong các thông báo cảnh báo hay lỗi .nó thường dùng khi bạn viết mã kết hợp
với 1 số gói khác mà sau đó sẽ thay đoạn mã bạn gõ vào trước khi biên d
ịch ,trình biên
dịch sẽ thông báo số dòng và tên tập tin không phù hợp với số dòng trong tập tin mà bạn
đang chỉnh sửa .chỉ thị #line có thể được dùng để lưu sự phù hợp. ta cũng có thể dùng cú
pháp #line default để lưu dòng thành số dòng mặc định :
#line 164 "Core.cs" // we happen to know this is line 164 in the file