我读何时使用静态类在C#中,但最多的回答并不一定回答我的问题。我已经与颇有几分相似的硬件接口,通过一个HTTP服务器的应用程序。每个设备必须登录到与所述凭证通常是相同的。我使用Properties.Settings.Default.etc来处理应用程序范围内的设置;然而,为了便于我跟踪时单独登录到设备的最后使用的用户名/密码。这是可设置通过选项窗口的默认值被用于第一和,保持不变,除非通过选项窗口改变尽管临时设置改变以及在默认值代替使用。

无论如何,这是情景......有关于这个问题,我这样做是:

private static class TemporarySettings
{
    public static string Username = Properties.Settings.Default["Username"].ToString();
    public static string Password = Properties.Settings.Default["Password"].ToString();
}

是傻?

有帮助吗?

解决方案

这不是愚蠢的,它可以完美地解决您的问题(如果是这样,请不要更改它)。有一些问题,这种做法可能导致的道路,虽然,这有助于了解那些是什么。

  1. 如果您想在不重新启动应用程序来更改用户名和密码,你不会有这样的选择。你可以编写逻辑来监视更改配置文件,并重新加载值,如果他们改变。
  2. 如果你想“重用”你的代码(特别是如果你把更多的行为像监测变化)多套的用户名和密码,你需要将其转换为一个实例。
  3. 如果你曾经想依赖于这类单元测试类,你将有一个非常困难的时期捻熄值。
  4. 要重申的是,虽然,你不应该回避最简单的解决掉(如您已定义的),因为这些的潜力的问题,除非你认为有,你会被烧掉一个现实的机会他们的未来。否则,它可能不会是一个非常艰巨的重构切换到一个实例类后,当有需要时。

其他提示

更好的是,将它们标记readonly或使用特性,只有具有吸气剂。

您正在设置为相同的值的用户名和密码,但除此之外,无

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top