从另一个类 c# 访问变量
本文关键字:访问 变量 另一个 | 更新日期: 2023-09-27 18:33:25
所以情况是用户已经使用凭据登录,当他们将商品添加到购物车时,我希望全名从Account.cs
到ProductGUI.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);
}
登录图形用户界面
.csprivate 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!");
}
}
您必须让登录
GUI 和产品 GUI 都知道您的Account
实例。最简单(也是最丑陋和最不推荐)的方法是将其设置为静态:
class LoginGUI
{
public static Account acc;
[...]
}
class ProductGUI
{
private void addToCartButton_Click(object sender, EventArgs e)
{
Console.WriteLine(LoginGUI.acc.Fullname);
}
[...]
}
但实际上,请很好地阅读有关单例模式的信息。依赖注入也可能有所帮助。
您可以通过创建全名的静态属性来实现此目的。它们对于抽象程序中的全局数据很有用。