我正在用 C# 創建一個用于更改控件可見性的方法,但是當我使用 switch 語句知道需要哪個控件時,我收到一個錯誤,指出需要一個常量值。這是我的代碼:public void _Visible(Control sf, bool visible){ switch (sf) { case panel1: break; }}'''我希望它能讓我以這種方式使用它_Visible(RichTextBox, true);
1 回答

Smart貓小萌
TA貢獻1911條經驗 獲得超7個贊
什么?據推測,它是類中的一個屬性,表示窗體上的 。錯誤告訴你它不是一個編譯時常量,這確實是屬性/變量/等的情況。panel1Control
如果它的值可以變化,則編譯器無法保證該結構有效。它需要能夠保證才能生成可執行代碼。switch
您要么需要使用常量值,要么將結構替換為結構。例如:switchif/else if
public void _Visible(Control sf,bool visible)
{
if (sf == panel1) // or ReferenceEquals() ?
{
// do something
}
else if (sf == panel2)
{
// do something else
}
// etc.
}
switch并不總是直接替代結構。文檔中有相當多的信息,包括“類型模式”和“when 子句”以及 .if/else ifswitch
- 1 回答
- 0 關注
- 95 瀏覽
添加回答
舉報
0/150
提交
取消