#包含在C#(条件编译)中

#包含在C#(条件编译)中,c#,c-preprocessor,C#,C Preprocessor,在C#中是否可以设置这样一个条件:如果条件为真,则编译一个文件;如果条件为false-编译另一个文件 有点像 #ifdef DEBUG #include Class1.cs #else #include Class2.cs #endif 或者可能在项目属性中设置它。不,不是 但是,如果块,您可以将这两个完整文件包装在#中 您可能还想看看。不,它不是 但是,如果块,您可以将这两个完整文件包装在#中 您可能还想查看。谢天谢地,不,不是在预处理器中。但是,您可以在文件本身中排除整个文件的实现。或者,

在C#中是否可以设置这样一个条件:如果条件为真,则编译一个文件;如果条件为false-编译另一个文件

有点像

#ifdef DEBUG
#include Class1.cs
#else
#include Class2.cs
#endif
或者可能在项目属性中设置它。

不,不是

但是,如果块,您可以将这两个完整文件包装在
#中

您可能还想看看。

不,它不是

但是,如果
块,您可以将这两个完整文件包装在
#中


您可能还想查看。

谢天谢地,不,不是在预处理器中。但是,您可以在文件本身中排除整个文件的实现。或者,您可以使用MSBuild设置生成过程,或者切换文件

谢天谢地,不是在预处理器中那样。但是,您可以在文件本身中排除整个文件的实现。或者,您可以使用MSBuild设置生成过程,或者切换文件

我不推荐。我不喜欢“调试”和“发布”这样的想法,因为它们的代码差别如此之大,以至于需要两个完全不同的文件才能理解它们之间的差别<代码>#如果调试
在我看来是一个相当大的代码气味

但是,您可以这样做:

// Class1.cs
#if DEBUG

...

#endif


我不推荐。我不喜欢“调试”和“发布”这样的想法,因为它们的代码差别如此之大,以至于需要两个完全不同的文件才能理解它们之间的差别<代码>#如果调试在我看来是一个相当大的代码气味

但是,您可以这样做:

// Class1.cs
#if DEBUG

...

#endif

在C#中,我们不使用文件的包含,但可以使用条件方法

例如,如果我正在开发一个游戏,并且我正在为我的输入类使用一个共享代码库,但是如果我在上,我希望调用一个方法,如果我在上,则调用另一个方法。它仍然会返回同一类的输入数据,但是它将采用一种非常不同的方法来获取它

您可以在此处了解有关条件方法的更多信息:

在C#中,我们不使用文件的包含,但可以使用条件方法

例如,如果我正在开发一个游戏,并且我正在为我的输入类使用一个共享代码库,但是如果我在上,我希望调用一个方法,如果我在上,则调用另一个方法。它仍然会返回同一类的输入数据,但是它将采用一种非常不同的方法来获取它

您可以在此处了解有关条件方法的更多信息:

也不要忘记,分部类和分部方法在这种情况下非常有用。也不要忘记分部类和分部方法在这种情况下非常有用。链接是半断的(“Visual Studio 2003退役技术文档”)。链接是半断的(“Visual Studio 2003技术文档”)。