在另一个位置访问相同的对象值
Access same object value in another location
我有一个简单的 C# 登录系统(Winform 应用程序)。我有一个单独的 class (ActiveUser
) 来存储用户登录时的详细信息。
在 ActiveUser
class 中,我有一个名为 loggedInUserID
的变量。
因此,当用户登录时,在登录表单上,我为该变量设置了一个值。
ActiveUser obj = new ActiveUser();
obj.setLoggedUserID(UserID);
现在我在每个表单中都有一个 CheckLoggedIn()
方法来检查用户是否登录。所以,我可以阻止用户访问未经授权的页面。
那么,如何检查呢?如果我喜欢这个,它只是另一个对象。
CheckLoggedIn(){
ActiveUser obj = new ActiveUser();
if(obj.getLoggedUserID() != 0){
MessageBox.Show("Logged In");
}
}
那么,如何查看我在用户登录时创建的对象值呢?
我认为单例模式最适合这种情况
让我们ActiveUser
成为一个简单的单例class。
在 ActiveUser
class 中,添加如下内容:
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() { ... }
我有一个简单的 C# 登录系统(Winform 应用程序)。我有一个单独的 class (ActiveUser
) 来存储用户登录时的详细信息。
在 ActiveUser
class 中,我有一个名为 loggedInUserID
的变量。
因此,当用户登录时,在登录表单上,我为该变量设置了一个值。
ActiveUser obj = new ActiveUser();
obj.setLoggedUserID(UserID);
现在我在每个表单中都有一个 CheckLoggedIn()
方法来检查用户是否登录。所以,我可以阻止用户访问未经授权的页面。
那么,如何检查呢?如果我喜欢这个,它只是另一个对象。
CheckLoggedIn(){
ActiveUser obj = new ActiveUser();
if(obj.getLoggedUserID() != 0){
MessageBox.Show("Logged In");
}
}
那么,如何查看我在用户登录时创建的对象值呢?
我认为单例模式最适合这种情况
让我们ActiveUser
成为一个简单的单例class。
在 ActiveUser
class 中,添加如下内容:
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() { ... }