为什么我的代码会引发错误消息?

我正在用 C# 创建一个用于更改控件可见性的方法,但是当我使用 switch 语句知道需要哪个控件时,我收到一个错误,指出需要一个常量值。


这是我的代码:


public void _Visible(Control sf, bool visible)

{

     switch (sf)

     {

         case panel1:

             break;

     }

}

'''

我希望它能让我以这种方式使用它


_Visible(RichTextBox, true);


LEATH
浏览 77回答 1
1回答

Smart猫小萌

什么?据推测,它是类中的一个属性,表示窗体上的 。错误告诉你它不是一个编译时常量,这确实是属性/变量/等的情况。panel1Control如果它的值可以变化,则编译器无法保证该结构有效。它需要能够保证才能生成可执行代码。switch您要么需要使用常量值,要么将结构替换为结构。例如:switchif/else ifpublic 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
打开App,查看更多内容
随时随地看视频慕课网APP