我有以下课程:
public class Example
{
public static string GetName(string username)
{
//Code to retrieve record from database
return RetrievedString;
}
}
我用它来获取需要它的某些功能的用户名称(例如,在登录时将用户的名字放在会话中等。)
代码有效。我的困惑是,如果将它作为静态字符串是正确的,或者我是否应该将其设置为非静态并初始化对象并使用GetName作为属性来检索字符串。
请注意,多个用户将同时在线。
答案 0 :(得分:0)
请记住,static
表示当前字段/属性/方法是类型的成员,而不是实例。静态成员存在于类型级别,并在类型的所有实例之间共享。
通常,您不希望在静态成员中存储任何应该唯一的内容。好的用例是例如连接工厂,具有静态访问权限但生成唯一连接。
在您的示例中,这一切都取决于实现 - 这基本上是一个帮助程序类,并使其可用,您必须传递其中的所有连接逻辑。这似乎不是一个好主意,特别是如果你想模拟连接/结果。如果你真的想让它成为静态的,我会在你的连接对象上使用扩展方法,这样它很容易使用,并且让你的连接可以模拟和注入。