0

长期读者,第一次海报:

我一直在尝试学习 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!";
        }
    }
}

我已经尝试了几天来找出为什么我在 line 上得到一个 nullReferenceException

string toDisplay = gameLogic.getString();

当然,这不是我想做的最终结果,但是如果有人可以向我解释这里发生了什么以及如何将字符串从不同的类传递到 GUI,我想我会能够立足于如何做我想做的其他事情。我已经看到很多关于将数据从表单传输到其他表单的事情,但是我找不到关于类到表单的内容。我知道这是可以做到的;它太简单了,不可能。谁能帮我吗?

谢谢!杰克

4

2 回答 2

5

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

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

于 2012-06-22T21:19:53.823 回答
-1

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

Public Static String getstring()

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

于 2012-08-27T23:47:41.113 回答