Getter不返回任何值

本文关键字:任何值 返回 Getter | 更新日期: 2023-09-27 18:04:11

我在使用setter和getter时遇到问题。当我试图将私有var从一个类调用到另一个类时,我没有得到var的值。下面是我的一些代码片段,供你们查看。

这是我为变量设置的getter。

class PlayerStats
    private string _pName;
    public string pName
    { get { return _pName; } set { _pName = value; } }
}

这是我想展示我的变种的地方

 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;
    }

这些都不是从主方法运行的。我想通过在主方法中从不同的类中调用不同的方法来完成我的程序,所以它看起来有点像:

        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();
    }

当我从username方法调用var时,我打印它没有问题,但如果我要从其他方法调用它,我就无法打印它。

感谢您提供的任何帮助。此外,如果你能提出一种不同的方法,请毫不犹豫地告诉我

Getter不返回任何值

不要为每个方法创建一个新的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;
}

此处的打印方法是创建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;
}

在main中创建一个实例,如下所示:

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();
}