C# 在类和窗体之间传输数据

C# 在类和窗体之间传输数据,c#,class,user-interface,nullreferenceexception,C#,Class,User Interface,Nullreferenceexception,长期读者,第一次海报: 我一直在尝试学习C#并编写一个游戏程序,但对于如何将数据从逻辑类传输到图形用户界面以及如何将数据从逻辑类传输到图形用户界面,我感到很困惑。传输字符串将是理想的,而且看起来非常简单,所以我希望有人能帮助我 在最基本的情况下,我想知道为什么这不起作用: namespace MyGame { public partial class GameWindow : Form { public LogicClass gameLogic;

长期读者,第一次海报:

我一直在尝试学习C#并编写一个游戏程序,但对于如何将数据从逻辑类传输到图形用户界面以及如何将数据从逻辑类传输到图形用户界面,我感到很困惑。传输字符串将是理想的,而且看起来非常简单,所以我希望有人能帮助我

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

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,我想我将能够在如何做我想做的其他事情上站稳脚跟。我已经看到了很多关于将数据从表单传输到其他表单的内容,但是我找不到我需要的关于类到表单的内容。我知道这是可以做到的;这太简单了,不可能。有人能帮我吗

谢谢!
Jake

您的数据传输逻辑正常,出现异常的原因是gameLogic从未实例化。您可以替换
公共逻辑类gameLogic带有
公共LogicClass gameLogic=new LogicClass()


或者添加
gameLogic=newLogicClass()

数据传输逻辑正常,出现异常的原因是gameLogic从未实例化。您可以替换
公共逻辑类gameLogic带有
公共LogicClass gameLogic=new LogicClass()


或者添加
gameLogic=newLogicClass()

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

Public Static String getstring()

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

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

Public Static String getstring()

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

perfect。这正是我所缺少的。对不起,我是新手!完美的这正是我所缺少的。对不起,我是新手!