gpt4 book ai didi

c# - 尝试使用 switch 语句而不是 if else 来找出哪个值更大或更小

转载 作者:行者123 更新时间:2023-11-30 14:21:39 24 4
gpt4 key购买 nike

我是学习 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):switch 表达式或 case 标签必须是 bool、char、string、integral、enum 或相应的可为 null 的类型(第 58 行)

仅供引用,我正在尝试使用 rhino 公共(public)库在 rhinoceros3d 上执行此操作。

此外,我一直在努力寻找可以学习 c# 的网站或论坛问这样的问题。我最终来到这里。我认为这种问题很基本,但我找不到可以给我这个问题答案的资源。看了好几篇帖子都没有找到类似的问题

如果有任何网站可以让人们快速回答我的问题,比如聊天室之类的,请让我知道。

最佳答案

基本上,您正在尝试在 case 语句中运行评估。您必须先进行评估,并在 case 语句中使用这些值。

如果是true/false 情况,则不应使用 switch。转换通常用于当有多个选项可能为真时。例如,如果您有一个包含多个值的 enum,并且您希望对每个值执行不同的操作(例如 DayOfWeek.MondayDayOfWeek.Tuesday等)。出于您遇到这里的确切原因。

如果你真的想要,你可以创建一个 ABCompare.BiggerABCompare.SmallerABCompare.Equal 或类似的枚举,然后 switch - 但这并没有什么意义。

关于c# - 尝试使用 switch 语句而不是 if else 来找出哪个值更大或更小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53398816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com