C# có khôngConditional
(!Conditional
, NotConditional
, Conditional(!)
) thuộc tính?C#! Thuộc tính có điều kiện?
tôi biết C# có một Conditional
attribute:
[Conditional("ShowDebugString")]
public static void ShowDebugString(string s)
{
...
}
tương đương tới:
public static void ShowDebugString(string s)
{
#if ShowDebugString
...
#endif
}
Nhưng trong trường hợp này tôi muốn ngược hành vi (bạn có cụ thể là chọn không tham gia):
public static void ShowDebugString(string s)
{
#if !RemoveSDS
...
#endif
}
Dẫn tôi thử:
[!Conditional("RemoveSDS")]
public static void ShowDebugString(string s)
{
...
}
mà không biên dịch. Và:
[Conditional("!RemoveSDS")]
public static void ShowDebugString(string s)
{
...
}
không biên dịch. Và:
[NotConditional("RemoveSDS")]
public static void ShowDebugString(string s)
{
...
}
không biên dịch vì đó chỉ là suy nghĩ mơ ước.
Not true, but true enough. Don't make me bring back the Nitpicker's Corner.
Nope. Lưu ý rằng '[Conditional (...)]' không tương đương với điều đó; nó cũng loại bỏ các cuộc gọi. – SLaks
@SLaks: Tôi đã viết một câu trả lời bao gồm cả điểm đó :) –