我是学习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"); }
我试图使用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#
问这样的问题.我结束了.
我认为这类问题非常基本,但我找不到
可以帮我解决这个问题的资源.
我看过几篇帖子,但找不到类似的问题
如果有任何网站可以让人们像聊天室一样快速回答我的问题,
请让我知道.
如果是真/假的情况,则不应使用开关.切换通常适用于有许多选项可能属实的情况.例如,如果你有一个包含多个值的枚举,并且你想为每个值做一些不同的事情(比如DayOfWeek.Monday,DayOfWeek.Tuesday等).因为你遇到这个问题的确切原因.
如果你真的想要,你可以创建一个ABCompare.Bigger,ABCompare.Smaller,ABCompare.Equal等类似的枚举,然后打开它 – 但这并没有多大意义.