从另一个类 c# 访问变量

本文关键字:访问 变量 另一个 | 更新日期: 2023-09-27 18:33:25

所以情况是用户已经使用凭据登录,当他们将商品添加到购物车时,我希望全名从Account.csProductGUI.cs

这是我尝试过的方法,但它提示出一个空的控制台语句。

抱歉,如果我问了一个重复的问题,但我需要帮助来弄清楚如何具体解决这个问题。

帐户.cs

    private string fullname;
    private string username;
    private string email;
    private string password;
    public Account(string fullname, string username, string email, string password)
    {
        this.fullname = fullname;
        this.username = username;
        this.email = email;
        this.password = password;
    }
    public string Fullname
    {
        get
        {
            return fullname;
        }
        set
        {
            fullname = value;
        }
    }

产品界面.cs

private void addToCartButton_Click(object sender, EventArgs e)
    {
        // I believe I'm creating a new account based another question, but how do i pass the information without creating a new account.
        Account a = new Account();
        Console.WriteLine(a.Fullname);
    }

登录图形用户界面

.cs
private void signinButton_Click(object sender, EventArgs e)
    {
        bool temp = false;
        foreach (DataRow row in dt.Rows)
        {
            if (row["Username"].ToString() == usernameTextbox.Text && row["Password"].ToString() == passwordTextbox.Text)
            {
                string fullname = row["Fullname"].ToString();
                string username = row["Username"].ToString();
                string email = row["Email"].ToString();
                string password = row["Password"].ToString();
                // I've saved the information into account.
                acc = new Account(fullname, username, email, password);
                temp = true;
            }
        }
        if (temp)
        {
            MessageBox.Show("Welcome to Anime Fanatic.'n Enjoy your stay!");
            this.Hide();
            mainPageGUI mainPage = new mainPageGUI();
            mainPage.ShowDialog();
        }
        else
        {
            MessageBox.Show("You have entered an incorrect Username or Password.'n Please try again!");
        }
    }

从另一个类 c# 访问变量

您必须让登录

GUI 和产品 GUI 都知道您的Account实例。最简单(也是最丑陋和最不推荐)的方法是将其设置为静态:

class LoginGUI
{
    public static Account acc;
    [...]
}
class ProductGUI
{
    private void addToCartButton_Click(object sender, EventArgs e)
    {
        Console.WriteLine(LoginGUI.acc.Fullname);
    }
    [...]
}

但实际上,请很好地阅读有关单例模式的信息。依赖注入也可能有所帮助。

您可以通过创建全名的静态属性来实现此目的。它们对于抽象程序中的全局数据很有用。