如何在 C# Visual Studio 中定义预处理器符号?

问题描述 投票:0回答:4

我在代码中写了

#if TEST_APP
。现在我想定义TEST_APP。如何使用 Visual Studio 2010 进行设置?这是一个 Windows 窗体应用程序。

Windows 窗体项目和 Web 项目中设置的符号名称是什么?

c# visual-studio visual-studio-2010
4个回答
35
投票

在 Visual Studio 解决方案资源管理器中,右键单击项目,然后单击“属性”。打开构建选项卡,您将看到“条件编译符号”字段。这是一个逗号分隔的列表,或空格分隔的。 还有 2 个常用符号的复选框,DEBUG 和 TRACE。

对于您的 Web 项目,您可以将该字段设置为“WEB_PROJECT”,将 winform 设置为“WINFORMS_PROJECT”


8
投票

在项目属性页面的“构建”选项卡中,查找“条件编译符号”设置。

我不认为 Web 和 Windows 窗体应用程序默认定义了任何不同的符号。请记住,这是为项目本身设置的,不会影响任何类库,因此我希望项目中的任何代码都能真正知道它是否在 Windows 应用程序中。你想用这个做什么?


0
投票

方法一:

#define TEST_APP true
#if TEST_APP == true
#endif

方法二:

#define TEST_APP
#if defined(TEST_APP)
#endif

来源:MSDN


0
投票

如果您需要条件编译来动态反映构建或环境条件,请查看我在 StackOverflow 上对如何设置条件编译变量的回答。我展示了如何根据环境条件启用条件编译,例如C#语言版本,这样你就可以编写这样的代码:

#if CSHARP7
    ref T pi = ref rg[i], pj = ref rg[j];
    var t = pi;                    // swap elements: managed pointers
    pi = pj;
    pj = t;
#else
    var t = rg[i];                 // swap elements: clunky
    rg[i] = rg[j];
    rg[j] = t;
#endif
© www.soinside.com 2019 - 2024. All rights reserved.