它说我需要声明一个主体,因为该类没有标记为抽象、外部或部分,我不知道这意味着什么

本文关键字:抽象 记为 外部 意味着 什么 我不知道 声明 因为 主体 一个 | 更新日期: 2023-09-27 18:30:16

在我的程序中,我有两个窗口表单窗口,一个默认打开,另一个在第一个按钮单击时打开。他们交换一些数据并更改一些文本。大部分都是非常简单的东西。现在我已经到了我得到这个错误的地步'字符测试。CharStats.CharStats(charactertest.MainForm)' 必须声明一个主体,因为它没有被标记为抽象、外部或部分。这使我指向第二个窗口窗体中的public CharStats(MainForm callingForm)行。

老实说,我几乎不知道这意味着什么,我对部分有点熟悉,并且总体上对身体有点模糊(但我现在正在阅读)。无论如何,这是我的代码,我希望有人可以指导我解决方案,也许可以填充我一点。:)

public partial class MainForm : Form
    {
        public static string VariableLabel1;
        public static string Variable2;
        Random _r = new Random();
        public MainForm()
        {
            InitializeComponent();          
        }
        void CLoop()
        {
            while(true)
            {
                SetInfo();
            }
        }
        public void SetInfo(string newText)
        {
            this.pcNameLabel.Text = newText;
        }
        void ChClassButtClick(object sender, EventArgs e)
        {
            CharStats form = new CharStats(this);
            form.Show();
        }
    }

和我的第二个窗口表单

public partial class CharStats : Form
    {
        private MainForm _callingForm;
        public CharStats(MainForm callingForm)
        public CharStats()
        {
            InitializeComponent();
            _callingForm = callingForm;
        }
        void StatTransfer()
        {
            callingForm.SetInfo("Bob");
        }
        void FighterButtonClick(object sender, EventArgs e)
        {
            Fighter();
            StatTransfer();
        }
    }

它说我需要声明一个主体,因为该类没有标记为抽象、外部或部分,我不知道这意味着什么

你有:

public partial class CharStats : Form
    {
        private MainForm _callingForm;
        public CharStats(MainForm callingForm)
        public CharStats()
        {
            InitializeComponent();
            _callingForm = callingForm;
        }

您可能正在寻找:

public partial class CharStats : Form
    {
        private MainForm _callingForm;
        public CharStats(MainForm callingForm)
        {
            InitializeComponent();
            _callingForm = callingForm;
        }

第一个尝试声明两个构造函数:一个具有 MainForm 参数,另一个具有零参数。但是,第二个构造函数的主体使用 callingForm 变量,该变量在该零参数构造函数中不可用。(如果您只是在第一个构造函数之后添加{},这可能会引发编译器错误。

你只需要一个构造函数接受一个名为 callingFormMainForm参数并将其存储在 _callingForm 中。因此,您应该取消零参数构造函数。

在你的第二堂课上,你只写了

public CharStats(MainForm callingForm)

它应该是一个方法(构造函数),并且应该具有打开和关闭{}

public CharStats(MainForm callingForm)
{
  //your work
}

在 CharStats 类中定义了两个构造函数 - 一个没有方法主体,另一个引用该作用域中不存在的参数。

这是你想要的吗?

public partial class CharStats : Form
{
    private MainForm _callingForm;
    public CharStats(MainForm callingForm)
    {
        InitializeComponent();
        _callingForm = callingForm;
    }
    private CharStats() : this (null)
    {
        // For designer use only.
    }
    void StatTransfer()
    {
        callingForm.SetInfo("Bob");
    }
    void FighterButtonClick(object sender, EventArgs e)
    {
        Fighter();
        StatTransfer();
    }
}