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

FormLoadEvent 上的 switch 语句

你可能想说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)