如何在所有表单上使用创建的实例/如何制作我的实例 public C# windowsforms

How to use created Instance on all forms / How to make my instance public C# windowsforms

你好,这对你来说可能是个简单的问题,我是初学者,我正在制作自己的简单游戏,我想使用 Class:Gamer,我想初始化它 在 MainWindow(Form1.cs) 从一个保存文件。从那时起,我也想在另一个 Forms 上使用它 ,但不知何故我无法让实例运行 public.

你能告诉我我做错了什么吗?或者还有另一种方法可以解决这个问题吗? 谢谢:)

Form1 上的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Text;
using System.IO;

namespace THE_GAME
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public static Gamer Player;
        private void MainWindow_Load(object sender, EventArgs e)
        {
            //load from savefile   lvl;hp;money;gun;armor,name
            string allData = File.ReadAllText("../../saveFile/save.txt");
            string[] dataFromSave = new string[5];
            dataFromSave = allData.Split(';');

            Player = new Gamer(dataFromSave[0], dataFromSave[1], dataFromSave[2], dataFromSave[3], dataFromSave[4], dataFromSave[5]);
        }
    }
}

secondForm2 上的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Text;

namespace THE_GAME
{
    public partial class Statistics : Form1
    {
        public Statistics()
        {
            InitializeComponent();
        }
        private void Statistics_Load(object sender, EventArgs e)
        {
            //labels stats
            labelName.Text = Form1.Player.GetName();
            labelHealth.Text = Form1.Player.GetHealth().ToString();
            labelMoney.Text = Form1.Player.GetMoney().ToString();

        }
        private void buttonBack_Click(object sender, EventArgs e)
        {
            MainMenu menu = new MainMenu();
            menu.Show();
            this.Close();
        }
    }
}

感谢您的宝贵时间。

要从不同的表单获取 Gamers Player 对象,只需执行

Form1.Player;

var nam =  Form1.Player.Name;
Form1.Player.Die();

等等

PS 正如我在评论中所说的那样 - 从您的另一个表格中推导出您的一个表格非常奇怪。像这样

 public partial class Statistics : Form1