我在使用setter和getter时遇到了麻烦。当我试图从一个类调用私有var到另一个类时,我没有得到var的值。 以下是我的代码片段,供大家查看。
这是变量的setter getter。
class PlayerStats
private string _pName;
public string pName
{ get { return _pName; } set { _pName = value; } }
}
这是我想要展示我的var。
public void Welcome()
{
PlayerStats pStats = new PlayerStats();
Header();
Console.WriteLine("Hello!");
Console.WriteLine(pStats.pName);
}
这是我在var上插入一个值的方法(在方法欢迎之前先执行此方法)
public void Username()
{
PlayerStats pStats = new PlayerStats();
string name;
Header();
Console.Write("\nChoose your USERNAME: ");
name = Console.ReadLine();
pStats.pName = name;
}
这些都不是从main方法运行的。我想通过在main方法中调用不同类的不同方法来完成我的程序,所以看起来像这样:
static void Main(string[] args)
{
Jobs jobCl = new Jobs();
GUI gui = new GUI();
gui.Header();
gui.StartPage();
gui.Username();
gui.ChoosepJob();
gui.Welcome();
Console.ReadLine();
}
当我从用户名方法调用var时,我打印它没有问题,但如果我要从其他方法调用它,我就无法打印它。
感谢您提供的任何帮助。此外,如果您可以建议采用不同的方式,请不要犹豫,告诉我
答案 0 :(得分:2)
不要在每个方法中创建一个新的PlayerStats
,在方法之外创建一次,然后将其传递给每个方法。 Jobs
您可能遇到同样的问题,可能需要传递给ChoosepJob
static void Main(string[] args)
{
PlayerStats pStats = new PlayerStats();
Jobs jobCl = new Jobs();
GUI gui = new GUI();
gui.Header();
gui.StartPage();
gui.Username(pStats);
gui.ChoosepJob(jobCl);
gui.Welcome(pStats);
Console.ReadLine();
}
public void Welcome(PlayerStats pStats)
{
Header();
Console.WriteLine("Hello!");
Console.WriteLine(pStats.pName);
}
public void Username(PlayerStats pStats)
{
string name;
Header();
Console.Write("\nChoose your USERNAME: ");
name = Console.ReadLine();
pStats.pName = name;
}
答案 1 :(得分:0)
此处的打印方法是创建PlayerStats
public void Welcome()
{
PlayerStats pStats = new PlayerStats();
Header();
Console.WriteLine("Hello!");
Console.WriteLine(pStats.pName);
}
您在此处创建的那个未在Welcome()
方法
public void Username()
{
PlayerStats pStats = new PlayerStats();
string name;
Header();
Console.Write("\nChoose your USERNAME: ");
name = Console.ReadLine();
pStats.pName = name;
}
在您的主程序中创建一个实例,如下所示:
public string Username()
{
Header();
Console.Write("\nChoose your USERNAME: ");
name = Console.ReadLine();
return name;
}
public void Welcome(PlayerStats pStats)
{
Header();
Console.WriteLine("Hello!");
Console.WriteLine(pStats.pName);
}
static void Main(string[] args)
{
PlayerStats pStats = new PlayerStats();
Jobs jobCl = new Jobs();
GUI gui = new GUI();
gui.Header();
gui.StartPage();
pStats.pName = gui.Username();
gui.ChoosepJob();
gui.Welcome(pStats);
Console.ReadLine();
}