C#有一个没有 Conditional(!Conditional,NotConditional,Conditional(!))属性?
我知道C#有一个Conditional属性:
[Conditional("ShowDebugString")]
public static void ShowDebugString(string s)
{
...
}
Run Code Online (Sandbox Code Playgroud)
这相当于1:
public static void ShowDebugString(string s)
{
#if ShowDebugString
...
#endif
}
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,我想要反向行为(你必须明确选择退出):
public static void ShowDebugString(string s)
{
#if !RemoveSDS
...
#endif
}
Run Code Online (Sandbox Code Playgroud)
这让我尝试:
[!Conditional("RemoveSDS")]
public static void ShowDebugString(string s)
{
...
}
Run Code Online (Sandbox Code Playgroud)
哪个不编译.和:
[Conditional("!RemoveSDS")]
public static void ShowDebugString(string s)
{
...
}
Run Code Online (Sandbox Code Playgroud)
哪个不编译.和:
[NotConditional("RemoveSDS")]
public static void ShowDebugString(string s) …Run Code Online (Sandbox Code Playgroud) 我正在编写一个应用程序,其中我有一些我不想删除的调试代码,但我希望在编译发布/发布时修改或删除它.例如,我想在调试版本中使用这样的东西:
MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
Run Code Online (Sandbox Code Playgroud)
...在发布版本中成为这个:
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望做这样的事情:
#if DEBUG_BUILD
MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
#else
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
#endif
Run Code Online (Sandbox Code Playgroud)
我希望每次更改构建类型时都不必在项目属性中添加/删除条件编译符号 ; 它应该自动发生.有没有办法在Microsoft Visual C#2008 Express Edition中执行此操作?谢谢.