为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
LEATH 2022-08-20 15:26:27
我正在用 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


查看完整回答
反对 回复 2022-08-20
  • 1 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信