在类和表单之间传输数据

时间:2012-06-22 19:30:38

标签: c# class user-interface nullreferenceexception

长时间读者,第一次海报:

我一直在尝试拿起C#并编写一个游戏程序,但我很想知道如何从逻辑类向GUI传输数据,反之亦然。传输字符串是理想的,看起来很简单,所以我希望有人可以帮助我。

在最基本的情况下,我想知道为什么这不起作用:

namespace MyGame
{
    public partial class GameWindow : Form
    {
        public LogicClass gameLogic;
        public GameWindow()
        {
            InitializeComponent();
        }
    private void startButton_Click(object sender, EventArgs e)
    {
        string toDisplay = gameLogic.getString();
        this.label1.Text = toDisplay;
    }
}

和游戏逻辑类

namespace MyGame
{
    public class LogicClass
    {
        public string getString()
        {
            return "success!";
        }
    }
}

我已经尝试了几天了解为什么我在行

获得nullReferenceException
string toDisplay = gameLogic.getString();
当然,这不是我想要做的最终结果,但是如果有人能够向我解释这里发生了什么以及如何将字符串从不同的类传递到GUI我认为我我将能够立足于如何做我喜欢的其他事情。我已经看到很多关于将数据从表单传输到其他表单的东西,但是我找不到关于表单的表格所需要的东西。我知道可以做到;它太简单了,不可能。任何人都可以帮助我吗?

谢谢! 杰克

2 个答案:

答案 0 :(得分:5)

您的数据传输逻辑很好,异常的原因是gameLogic从未实例化。您可以将public LogicClass gameLogic;替换为public LogicClass gameLogic = new LogicClass();

或者在调用InitializeComponent()之后在构造函数中添加gameLogic = new LogicClass();

答案 1 :(得分:-1)

或者您可以将getstring方法定义为Static

Public Static String getstring()

这将帮助您在不实例化类的情况下调用该方法。