0

どうか、これの何が問題になっていますか。

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
4

3 に答える 3

2

あなたはおそらく言うつもりだったthis.Tag。プロパティを参照するTagには、のインスタンスが必要になるため、Form2受け取ったエラーメッセージが表示されます。

編集:

忘れTagたのは物だった。文字列にキャストすると、ステートメントが機能するはずです。

switch ((string)this.Tag)
于 2012-06-12T05:07:09.777 に答える
2

は静的プロパティではないため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;
      }    
于 2012-06-12T05:13:40.143 に答える
1

コードは次のようになります。

switch ((string)this.Tag) 
于 2012-06-12T05:12:55.267 に答える