我正在编写一个应用程序,它有两个类,它们提供基本相同的功能,但适用于不同的情况。我想要该软件的三个版本 - 一个用户可以更改 ini 文件以将程序配置为使用两个类之一的版本,然后是一个仅使用两个类之一的版本。
现在我通过 ini 文件让它工作,但我希望能够构建完全不包含不需要类的代码的版本。
解决此问题的最佳方法是什么?我目前的想法是,因为这两个类都派生自一个公共(public)接口(interface),所以我将只添加一个编译时条件,它查看事件构建配置并决定是否编译该类。这样做的语法是什么?
在此先感谢您的帮助和意见!
最佳答案
您可以使用条件编译符号,这类似于您在 C/C++ 中使用预编译器指令所做的事情。
例如:
interface IThing {
}
#if PLATFORM_A
class ThingImplementation : IThing {
}
#endif
#if PLATFORM_B
class ThingImplementation : IThing {
}
#endif
您可以通过将条件编译符号添加到项目设置中的“构建”选项卡来选择设计器实现。
对于非常基本的实现,实际上您根本不需要接口(interface),只需根据您正在编译的平台删除不需要的代码(即使接口(interface)对于强制一致性很有用)。
class Thing {
#if PLATFORM_A
Platform specific code
#endif
#if PLATFORM_B
Platform specific code
#endif
}
关于C# VS 2008 构建配置——对不同的构建使用不同的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3008512/