我有一个简单的C#登录系统(Winform应用程序)。我有一个单独的类(ActiveUser
)来存储用户登录时的详细信息。
在ActiveUser
课程中,我有一个名为loggedInUserID
的变量。
因此,当用户登录时,在登录表单上,我为该变量设置了一个值。
ActiveUser obj = new ActiveUser();
obj.setLoggedUserID(UserID);
现在我在每个表单中都有一个CheckLoggedIn()
方法,用于检查用户是否已登录。因此,我可以阻止用户访问未经授权的页面。
那么,如何检查呢?如果我这样做,它只是另一个对象。
CheckLoggedIn(){
ActiveUser obj = new ActiveUser();
if(obj.getLoggedUserID() != 0){
MessageBox.Show("Logged In");
}
}
那么,如何检查用户登录时创建的对象值?
答案 0 :(得分:1)
我认为 Singleton Pattern 在这种情况下是最合适的。
让ActiveUser
成为一个简单的单例类。
在ActiveUser
课程中,添加以下内容:
public static readonly ActiveUser User = new ActiveUser();
要SetLoggedUserID
,请执行以下操作:
ActiveUser.User.SetLoggedUser(...);
你可以这样检查:
void CheckLoggedIn(){
if(ActiveUser.User.getLoggedUserID() != 0){
MessageBox.Show("Logged In");
}
}
为避免意外创建ActiveUser
的新实例,我建议您将构造函数设为私有:
private ActiveUser() { ... }