我正在用 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 关注
- 76 浏览
添加回答
举报
0/150
提交
取消