Trong C# chúng ta có thể phân biệt việc thực thi mã tùy thuộc vào loại xây dựng. Theo mặc định, chúng tôi đã xác định loại Gỡ lỗi và Phát hành.
Chúng ta có thể làm điều đó bằng cách sử dụng #if
chỉ:Hoặc toán tử trong thuộc tính Điều kiện trong C#
#if DEBUG
public void Foo()
{ ... }
#endif
Nhưng chúng ta cũng có thể sử dụng Conditional
thuộc tính:
[Conditional("DEBUG")]
public void Foo()
{ ... }
Giải pháp thứ hai thậm chí còn tuyên bố là dễ bảo trì hơn (xem: Effective C# bởi Bill Wagner).
Câu hỏi của tôi là - làm cách nào tôi có thể sử dụng thuộc tính Conditional
với nhiều cấu hình xây dựng? Có thể bằng cách nào đó sử dụng toán tử or
không? Tôi hỏi vì tôi muốn một số phương pháp Foo được thực hiện cả trong, ví dụ, các cấu hình DEBUG và BAR build. Vậy thì sao?
Chỉ cần áp dụng nó nhiều lần, như được hiển thị trong ví dụ trong [tài liệu] (https://msdn.microsoft.com/en-us/library/system.diagnostics.conditionalattribute (v = vs.110) .aspx) –
Vâng, có thể ('AttributeUsageAttribute' cho' ConditionalAttribute' có 'AllowMultiple' được đặt thành' true') tuy nhiên xin lưu ý rằng hai ví dụ của bạn hoạt động rất khác nhau (ngay cả khi bạn di chuyển '#if DEBUG' bên trong phương thức) khi có các tham số liên quan. –
@AdrianoRepetti Bạn có thể giải thích cách họ sẽ thực hiện khác nhau không? – Vlad274