我阅读了何时在 C# 中使用静态类,但最上面的答案不一定能回答我的问题。我有一个通过 HTTP 服务器与相当多的类似硬件接口(interface)的应用程序。每个设备都必须登录,并且凭据通常是相同的。我正在使用 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();
}
这是愚蠢的吗?
最佳答案
它并不愚蠢,它可能会完美地解决您的问题(如果是,请不要更改它)。不过,这种方法可能会在未来导致一些问题,了解这些问题是有帮助的。
- 如果您想在不重新启动应用程序的情况下更改用户名和密码,则没有该选项。您可以编写逻辑来观察配置文件的变化,并在值发生变化时重新加载它们。
- 如果您想为多组用户名和密码“重用”您的代码(尤其是如果您放置更多行为,例如监视更改),则需要将其转换为一个实例。
- 如果您想对依赖于此类的类进行单元测试,您将很难对这些值进行 stub 。
不过,重申一下,您不应该因为这些潜在问题而回避最简单的解决方案(如您定义的那样),除非您认为有现实的机会您会被他们在未来。否则,稍后在需要时切换到实例类可能不是一个非常困难的重构。
关于c# - 静态类...这样做可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/928055/