它说我需要声明一个主体,因为该类没有标记为抽象、外部或部分,我不知道这意味着什么
本文关键字:抽象 记为 外部 意味着 什么 我不知道 声明 因为 主体 一个 | 更新日期: 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
变量,该变量在该零参数构造函数中不可用。(如果您只是在第一个构造函数之后添加{}
,这可能会引发编译器错误。
你只需要一个构造函数接受一个名为 callingForm
的MainForm
参数并将其存储在 _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();
}
}