FormLoadEvent 上的 switch 语句
本文关键字:语句 switch 上的 FormLoadEvent | 更新日期: 2023-09-27 18:36:47
拜托,这有什么问题:
private void Form2_Load(object sender, EventArgs e)
{
switch (Form2.Tag) //error
{
case "desc":
MessageBox.Show("desc");
break;
case "sms":
MessageBox.Show("sms");
break;
}
}
错误:
An object reference is required for the non-static field, method, or property System.Windows.Forms.Control.Tag.get
你可能想说this.Tag
. 引用 Tag
属性将需要 Form2
的实例,因此您会收到错误消息。
编辑:
忘记了Tag
是一个对象。 将其转换为字符串,您的语句应该可以工作:
switch ((string)this.Tag)
由于
Tag
不是静态属性,因此您将无法通过类名(即Form2)访问它。此外,Tag 是object
类型,不能在 switch 语句中使用。由于您的案例是字符串类型,因此您可以尝试以下方法:
string tag = (string) this.Tag;
switch (tag) //error
{
case "desc":
MessageBox.Show("desc");
break;
case "sms":
MessageBox.Show("sms");
break;
}
你的代码应该是:
switch ((string)this.Tag)