如何在C#visual studio中定义预处理器符号

时间:2010-03-01 11:09:42

标签: c# visual-studio visual-studio-2010

很抱歉,如果我的术语有误。我在代码中写了#if TEST_APP。现在我想定义TEST_APP。我如何使用visual studios 2010进行设置?这是一个Windows窗体应用程序。

如果你能告诉我在winform项目和web项目中设置的符号的名称,可以获得奖励

4 个答案:

答案 0 :(得分:22)

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

对于您的网络项目,您可以将字段设置为“WEB_PROJECT”并赢取“WINFORMS_PROJECT”

答案 1 :(得分:8)

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

我不认为Web和winform应用程序默认定义了任何不同的符号。请记住,这是为项目本身设置的,并且不会影响任何类库 - 所以我希望项目中的任何代码都能真正知道它是否在Windows应用程序中,或者不在其中。您在考虑使用它的目的是什么?

答案 2 :(得分:0)

方法1:

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

方法2:

#define TEST_APP
#if defined(TEST_APP)
#endif

来源:MSDN

答案 3 :(得分:0)

如果您需要条件编译来动态反映构建或环境条件,请在StackOverflow上查看我对 How do I set a conditional compile variable 的回答。我将展示如何根据环境条件启用条件编译,例如 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