当前位置 : 主页 > 编程语言 > c语言 >

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

来源:互联网 收集:自由互联 发布时间:2021-06-25
我是学习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"); }
我是学习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等类似的枚举,然后打开它 – 但这并没有多大意义.

网友评论