如何在不使用C#创建对象的情况下访问类方法?

时间:2018-12-08 22:06:17

标签: c# .net winforms

我正在使用Windows Forms Apps从事C#游戏,并且我有一个名为“ Game”的表单,其中包含以下内容(这只是完整代码的一部分):

public Game()
{
    InitializeComponent();
}
public void Button1_Click(object sender, EventArgs e)
{
    Player p1 = new Player(textBox1.Text);
    textBox1.Clear();
    button1.Visible = false;
    textBox1.Visible = false;
}
private void KeyIsDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Up && !p1.jumping)
    {
        p1.jumping= true;
    }
}

这是另一个名为“ Player.cs”的类文件的一部分(当然具有相同的命名空间):

public class Player
{
    public string name;
    public int score;
    public bool jumping = false;

    public Player(string name)
    {
        this.name = name;
    }
}

唯一的问题是我无法通过另一种方法(在本例中为“ KeyIsDown”)访问对象“ p1”(通过单击Button1创建),因为“ p1”不存在。我该如何解决? 感谢您的任何建议:)

1 个答案:

答案 0 :(得分:0)

这是因为您创建的变量不是全局变量。您必须在功能Button1_Click内执行的唯一操作是初始化变量,例如:

p1 =新玩家(...);

但是在函数外部和Game类内部,您必须生成一个名为:

的变量

玩家p1;

您必须保持它未经初始化,直到您按下按钮。祝你好运。