在另一个位置访问相同的对象值

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() { ... }