Tôi có dòng trong mã vb:
#if Not Debug
mà tôi phải chuyển đổi, và tôi không thấy nó trong c #?
Có một cái gì đó tương đương với nó, hoặc có một số cách giải quyết?
Tôi có dòng trong mã vb:
#if Not Debug
mà tôi phải chuyển đổi, và tôi không thấy nó trong c #?
Có một cái gì đó tương đương với nó, hoặc có một số cách giải quyết?
Câu trả lời:
Bạn sẽ cần sử dụng:
#if !DEBUG
// Your code here
#endif
Hoặc, nếu biểu tượng của bạn thực sự là Debug
#if !Debug
// Your code here
#endif
Từ tài liệu , bạn có thể xử lý hiệu quả DEBUG
như một boolean. Vì vậy, bạn có thể thực hiện các bài kiểm tra phức tạp như:
#if !DEBUG || (DEBUG && SOMETHING)
Chỉ để bạn quen với những gì đang diễn ra ở đây, #if
là một biểu thức tiền xử lý và DEBUG
là một ký hiệu biên dịch có điều kiện. Đây là một bài báo MSDN để có giải thích sâu hơn.
Theo mặc định, khi ở trong cấu hình Gỡ lỗi , Visual Studio sẽ kiểm tra tùy chọn Định nghĩa hằng số Gỡ lỗi trong thuộc tính Xây dựng của dự án. Điều này áp dụng cho cả C # và VB.NET. Nếu bạn muốn phát điên lên, bạn có thể xác định cấu hình xây dựng mới và xác định các ký hiệu biên dịch có điều kiện của riêng bạn. Ví dụ điển hình khi bạn thấy điều này mặc dù là:
#if DEBUG
//Write to the console
#else
//write to a file
#endif
Chỉ trong trường hợp nó giúp đỡ người khác, đây là câu trả lời của tôi.
Điều này sẽ không hoạt động đúng:
#if !DEBUG
// My stuff here
#endif
Nhưng điều này đã hoạt động:
#if (DEBUG == false)
// My stuff here
#endif
Tôi nghĩ một cái gì đó giống như sẽ hoạt động
#if (DEBUG)
//Something
#else
//Something
#endif
#if
câu lệnh điều kiện này . Nó có thể được viết#if DEBUG
bool isDebugMode = false;
#if DEBUG
isDebugMode = true;
#endif
if (isDebugMode == false)
{
enter code here
}
else
{
enter code here
}