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