6

可能重复:
用于调试与发布的 C# if/then 指令

我正在处理一个 C# 项目,并且我想知道如何在调试模式下在调试器中运行程序时添加特殊情况,我可以访问某些资源,而这些资源在发布版本中通常是没有的。

这是不断发生的事情,我在程序中内置了管理工具,仅用于调试,例如一个按钮,表示测试并将我想要的任何代码放入其中。不断发生的事情我忘记隐藏那个按钮,我把它释放给客户。我希望只有当它在调试模式下运行时才有那个测试按钮,而不是任何其他时间。

这会打开我的管理工具

rpg_Admin.Visible = true;

这会关闭我的管理工具

rpg_Admin.Visible = false;

有没有一种简单的方法可以做到这一点?

if Debug Mode
    rpg_Admin.Visible = true

或者也许当它在视觉工作室中运行时

rpg_Admin.Visible = true

但是当它自己运行时

rpg_Admin.Visible = false

我在 Visual Studio 2010 上运行

谢谢。

4

2 回答 2

6

使用您的示例,添加一些 #if / #else / #endif 指令,如下所示:

#if DEBUG
    rpg_Admin.Visible = true;
#else
    rpg_Admin.Visible = false;
#endif

您还可以将System.Diagnostics.ConditionalAttribute属性应用于仅在调试版本中使用的任何代码。这将从发布版本中完全删除任何不必要的代码。例子:

[Conditional("DEBUG")]
public static void MyDebugOnlyMethod()
    {
    }
于 2012-12-27T15:06:06.363 回答
1

将调试代码包装在#ifdef DEBUG/#endif 中:

#ifdef DEBUG

// debug only code here

#endif
于 2012-12-27T14:58:03.147 回答