Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#visual Studio中定义预处理器符号_C#_Visual Studio_Visual Studio 2010 - Fatal编程技术网

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

如何在C#visual Studio中定义预处理器符号,c#,visual-studio,visual-studio-2010,C#,Visual Studio,Visual Studio 2010,对不起,如果我的术语是错误的。我在代码中编写了#if TEST_APP。现在我想定义TEST_应用程序。如何使用visual Studio 2010进行设置?这是一个windows窗体应用程序 如果您可以告诉我在winform项目和web项目中设置的符号的名称,请在项目属性页的“生成”选项卡中查找“条件编译符号”设置 我认为默认情况下,web和winform应用程序没有定义任何不同的符号。请记住,这是为项目本身设置的,不会影响任何类库——因此我希望项目中的任何代码都能真正知道它是否在Window

对不起,如果我的术语是错误的。我在代码中编写了
#if TEST_APP
。现在我想定义TEST_应用程序。如何使用visual Studio 2010进行设置?这是一个windows窗体应用程序


如果您可以告诉我在winform项目和web项目中设置的符号的名称,请在项目属性页的“生成”选项卡中查找“条件编译符号”设置


我认为默认情况下,web和winform应用程序没有定义任何不同的符号。请记住,这是为项目本身设置的,不会影响任何类库——因此我希望项目中的任何代码都能真正知道它是否在Windows应用程序中。您想用它做什么?

在visual studio解决方案资源管理器中,右键单击项目并单击属性。打开build选项卡,您将看到一个字段“条件编译符号”。这是一个逗号分隔的列表,或空格分隔的列表。 还有两个常用符号复选框“调试”和“跟踪”

对于web项目,可以将字段设置为“web\u项目”,将winforms设置为“winforms\u项目”

方法1:

#define TEST_APP true
#if TEST_APP == true
#endif
方法2:

#define TEST_APP
#if defined(TEST_APP)
#endif

来源:

如果需要条件编译来动态反映构建或环境条件,请查看我对StackOverflow的回答。我将演示如何基于环境条件启用条件编译,例如C#language version,以便您可以编写如下代码:

#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

在写了APP_TEST-dAPP_TEST(我认为是gcc)之后,它们失败了,在看到这些答案之后,我意识到我有一个对我的web库的引用,而不是包含我的文件。哎呀。当我试图让F和C在相同的分部类中定义方法时,我不需要应用程序和Web定义,我只是想知道,因为我知道C++做的。我正在一个应用程序中测试一些后端代码,以便我可以动态修改它,这在web应用程序中是不允许的(以下情况下不允许更改。调试器连接到已运行的进程)我们在web应用程序中使用它来启用调试中的缓存。在版本中启用了缓存逻辑,在调试中禁用了缓存逻辑,但有时需要测试缓存逻辑(在调试中)。因为这是一个额外的条件,所以很方便。(DEBUG | DEBUG_WITH_CACHE)您还可以直接在项目文件(*.csproj)中设置这些内容,例如
DEBUG;在PropertyGroup内跟踪。