我是学习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等类似的枚举,然后打开它 – 但这并没有多大意义.
