它可以在编译时或在运行时使用配置文件。有没有比简单(和许多)if 语句更优雅的方法?
我特别针对特定功能的 UI 控件集。
除非您的程序必须挤出 100% 的性能,否则请使用配置文件。它会让你的代码更干净。
如果一个选项改变了代码的许多部分,不要写很多条件,写一个条件来选择你委托给哪个类。例如,如果偏好选择 TCP 与 UDP,则让您有条件地实例化一个 TcpProvider 或 UdpProvider,您的代码的其余部分将使用它们,而无需担心或大惊小怪。
编译器指令没有那么灵活,但在某些情况下它们是合适的。
例如,默认情况下,当您在 VS.NET 中以 DEBUG 模式编译时,定义了一个“DEBUG”符号......所以你可以这样做
void SomeMethod()
{
#if DEBUG
//do something here
#else
//do something else
#endif
}
这将导致仅编译其中一个块,具体取决于是否定义了 DEBUG 符号。
此外,您可以在项目属性 -> 构建 -> 条件编译符号中定义其他符号。
或者,通过命令行编译器使用 /define: 开关
也许我假设太多了,但是:
switch (setting) {
case "development":
dostuff;
break
case "production":
dootherstuff;
break;
default:
dothebeststuff;
break;
}