在.net桌面应用程序中启用或者禁用功能的最佳方法是什么?

时间:2020-03-05 19:00:11  来源:igfitidea点击:

它可以在编译时或者在运行时使用配置文件。有没有比简单(很多)if语句更优雅的方法?

我的目标是针对特定功能的UI控件集。

解决方案

回答

除非程序必须挤出100%的性能,否则请使用配置文件进行操作。它将使代码更整洁。

如果一个选项更改了代码的许多部分,请不要编写许多条件,而要编写一个选择要委派给哪个类的条件。例如,如果首选项选择TCP还是UDP,请让条件实例化TcpProvider或者UdpProvider,其余代码以最小的麻烦或者烦恼使用。

回答

也许我承担的太多了,但是:

switch (setting) {
  case "development": 
     dostuff;
     break
  case "production":
     dootherstuff;
     break;
  default:
     dothebeststuff;
     break;
}

回答

编译器指令不那么灵活,但是在某些情况下它们是适当的。

例如,默认情况下,当我们在VS.NET中以DEBUG模式进行编译时,定义了" DEBUG"符号...因此我们可以执行

void SomeMethod()
{
    #if DEBUG
    //do something here
    #else
    //do something else
    #endif

}

这将导致仅编译这些块之一,具体取决于是否定义了DEBUG符号。

另外,我们可以在项目属性->构建->条件编译符号中定义其他符号。

或者,通过命令行编译器使用/ define:开关