我正在编写一个应用程序,它有两个类,它们提供基本相同的功能,但适用于不同的情况。我想要有三个版本的软件 - 一个用户可以更改一个ini文件来配置程序使用两个类中的一个,然后一个版本只使用两个类中的一个。
现在我通过ini文件工作,但我希望能够构建不包含不需要的类的代码的版本。
最好的方法是什么?我现在的想法是,由于这两个类派生自一个公共接口,我只需添加一个编译时条件,查看活动构建配置并决定是否编译该类。这样做的语法是什么?
提前感谢您的帮助和意见!
答案 0 :(得分:1)
最好将每个派生类放在自己的程序集中。在运行时,加载与您的应用程序一起使用的程序集,并转换为基本接口或抽象类。
答案 1 :(得分:1)
您可以使用条件编译符号,这些符号类似于使用预编译器指令在C / C ++中执行的操作。
例如:
interface IThing {
}
#if PLATFORM_A
class ThingImplementation : IThing {
}
#endif
#if PLATFORM_B
class ThingImplementation : IThing {
}
#endif
您可以通过在项目设置的“Build”选项卡中添加条件编译符号来选择desider实现。
对于一个非常基本的实现,您根本不需要接口,只需根据您正在编译的平台删除不需要的代码(即使接口对于强制执行一致性也很有用)。
class Thing {
#if PLATFORM_A
Platform specific code
#endif
#if PLATFORM_B
Platform specific code
#endif
}