在.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:开关