加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 尝试使用if语句的switch语句来找出哪个值更大或更小

发布时间:2020-12-16 01:28:01 所属栏目:百科 来源:网络整理
导读:我是学习c#(和任何编码语言)的初学者 我试图使用switch语句而不是if else. 这是if else语句 private void RunScript(int a,int b,ref object A) { if (a b) { Print("a is smaller than b"); Print("b is bigger than a"); } else if (a b) { Print("a is bi
我是学习c#(和任何编码语言)的初学者
我试图使用switch语句而不是if else.

这是if else语句

private void RunScript(int a,int b,ref object A)
  {
    if (a < b)
    {
      Print("a is smaller than b");
      Print("b is bigger than a");
    }
    else if (a > b)
    {
      Print("a is bigger than b");
      Print("b is smaller than a");
    }
    else
    {
      Print("a equals b");
    }

这是我想要做的开关

private void RunScript(double a,double b,ref object A)
      {
        double whichIsBigger = a - b;
//below is the 58th line
        switch (whichIsBigger)
        {
          case whichIsBigger < 0:
            Print("a is bigger than b");
            break;
          case whichIsBigger > 0:
            Print("a is smaller than b");
            break;
          default:
            Print("a equals b");
            break;
        }

它给了我这个
错误(CS0151):开关表达式或大小写标签必须是bool,char,string,integral,enum或相应的可空类型(第58行)

仅供参考,我正在尝试使用rhino公共库在rhinoceros3d上执行此操作.

而且,我一直在努力寻找一个网站或论坛来学习c#
问这样的问题.我结束了.
我认为这类问题非常基本,但我找不到
可以帮我解决这个问题的资源.
我看过几篇帖子,但找不到类似的问题

如果有任何网站可以让人们像聊天室一样快速回答我的问题,
请让我知道.

解决方法

基本上,您正试图在案例陈述中运行评估.您必须先进行评估,并使用case语句中的值.

如果是真/假的情况,则不应使用开关.切换通常适用于有许多选项可能属实的情况.例如,如果你有一个包含多个值的枚举,并且你想为每个值做一些不同的事情(比如DayOfWeek.Monday,DayOfWeek.Tuesday等).因为你遇到这个问题的确切原因.

如果你真的想要,你可以创建一个ABCompare.Bigger,ABCompare.Smaller,ABCompare.Equal等类似的枚举,然后打开它 – 但这并没有多大意义.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读