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

行で 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 に答える