Tôi có dòng trong mã vb:#if Không gỡ lỗi trong C#?
#if Not Debug
mà tôi phải chuyển đổi, và tôi không nhìn thấy nó trong C#?
Có điều gì tương đương với nó không, hoặc có cách nào khác không?
Tôi có dòng trong mã vb:#if Không gỡ lỗi trong C#?
#if Not Debug
mà tôi phải chuyển đổi, và tôi không nhìn thấy nó trong C#?
Có điều gì tương đương với nó không, hoặc có cách nào khác không?
Bạn sẽ cần phải sử dụng:
#if !DEBUG
// Your code here
#endif
Hoặc, nếu biểu tượng của bạn là thực sự Debug
#if !Debug
// Your code here
#endif
Từ documentation, bạn có thể xử lý hiệu quả DEBUG
dưới dạng boolean. Vì vậy, bạn có thể làm các xét nghiệm phức tạp như:
#if !DEBUG || (DEBUG && SOMETHING)
Tôi nghĩ rằng một cái gì đó như sẽ làm việc
#if (DEBUG)
//Something
#else
//Something
#endif
Chỉ vì vậy bạn đã quen thuộc với những gì đang xảy ra ở đây, #if
là một biểu hiện tiền xử lý, và DEBUG
là một biểu tượng biên soạn có điều kiện. Here's an MSDN article để có giải thích chi tiết hơn.
Theo mặc định, khi trong gỡ lỗi cấu hình, Visual Studio sẽ kiểm tra Define DEBUG hằng số tùy chọn dưới tính xây dựng của dự án. Điều này đi cho cả C# và VB.NET. Nếu bạn muốn phát điên, bạn có thể định nghĩa các cấu hình xây dựng mới và xác định các biểu tượng 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 ra ngoài, đây là câu trả lời của tôi.
này sẽ không hoạt động đúng:
#if !DEBUG
// My stuff here
#endif
Nhưng điều này đã làm công việc:
#if (DEBUG == false)
// My stuff here
#endif
Có thể đã đúng vào ngày này được đăng, nhưng ít nhất là cho VS 2015! DEBUG hoạt động như mong đợi –
bool isDebugMode = false;
#if DEBUG
isDebugMode = true;
#endif
if (isDebugMode == false)
{
enter code here
}
else
{
enter code here
}
Đây là câu trả lời không tốt vì nó sử dụng logic thời gian chạy để xử lý được thực hiện tại thời gian biên dịch. – antiduh
Thời gian thiết kế T4 và các loại tương tự sẽ cần loại điều này theo thời gian. – StingyJack
Chỉ cần lưu ý các dấu ngoặc không cần thiết cho điều kiện '# này if' báo cáo. Nó có thể được viết '#if DEBUG' – atconway