jjzjj

switch-statement

全部标签

c# - 在 switch 语句中使用字符串集合

我正在尝试为这个问题找到解决方案。这是我的示例代码:classProgram{privatestringCommand;privatestaticstring[]Commands={"ComandOne","CommandTwo","CommandThree","CommandFour"};staticvoidMain(string[]args){Command=args[0];switch(Command){caseCommands[0]://dosomethingbreak;caseCommands[1]://dosomethingelsebreak;caseCommands[2]

c# - 为什么 c# 编译器需要在 switch 构造中使用 break 语句?

我很难理解为什么编译器需要使用break语句。不可能错过它,因为现在允许掉落。我看到了C或C++中断的原因,但这里是否需要中断。为什么在案件结束后中断不是内置行为?它不只是没有语义的语法吗?抱歉,如果这是一个愚蠢的问题。编辑:仅当案例为空时才允许掉落。当那里有语句时,你不能省略break语句。所以,这是另一回事。 最佳答案 编译器并不“需要”break语句,它需要它们。这是一个设计决定。它使代码在语义上接近C和C++,同时消除了一直是C语言的一个有争议的“特性”的失败陷阱。 关于c#-为

c# - 在 MVC View 中使用 switch case

在MVCView中,我有一个“for”命令,我想在每个值中写入指定的标记。我在这里给你展示一个简单的案例:@for(vari=0;i@(switch(i){case0:???//write"CustomValue1"break;case1:???//write"CustomValue2"break;})}我使用MVC4RazorView。提前感谢您抽出时间。 最佳答案 这很简单,您使用与此相同的代码,它工作正常。@for(vari=0;i@switch(i){case0:CustomValue1break;case1:CustomV

c# - 切换大小写,检查 C# 3.5 中的范围

这个问题在这里已经有了答案:Multiplecasesinswitchstatement(24个答案)Switchcase:canIusearangeinsteadofaonenumber[duplicate](16个答案)关闭1年前。在C#中,switch语句不允许case跨越值的范围。我不喜欢为此目的使用if-else循环的想法,那么还有其他方法可以在C#中检查数值范围吗?

C# 开关/案例共享相同的范围?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Variabledeclarationinc#switchstatement我一直想知道:当我写的时候:switch(temp){case"1":inttmpInt=1;break;}case"1":区域有一段代码被执行(直到中断)现在,来自上方的瀑布不能进入caseof2,例如:switch(temp){case"1":inttmpInt=1;case"2":break;}//错误:缺少中断返回。所以我假设,他们有不同的处决区域(case....break)。那么为什么会出现这个错误呢?//下面定义了冲突变

c# - 组合返回和切换

如何合并return和switchcase语句?我想要类似的东西returnswitch(a){case1:"lalala"case2:"blalbla"case3:"lolollo"default:"default"};我知道这个解决方案switch(a){case1:return"lalala";case2:return"blalbla";case3:return"lolollo";default:return"default";}但我只想使用return运算符。 最佳答案 实际上,使用以C#8开头的switch表达式是可能的。

c# - 无效的 Switch 语法构建成功了吗?

谁能帮我解惑一下?我去checkinTFS的一些更改,但我的checkin被拒绝了。它促使我查看我编辑的switch语句。我发现VisualStudio2017声称不存在编译时问题,并允许我成功构建和部署应用程序。最重要的是,甚至该方法的单元测试似乎都按预期通过了。publicenumPaymentStatus{Issued,Cleared,Voided,Paid,Requested,Stopped,Unknown}publicclassPaymentViewModel{publicPaymentStatusStatus{get;set;}...publicStringStatusSt

c# - 我怎样才能让 VS2010 insert using statements 按照 StyleCop 规则规定的顺序

相关的默认StyleCop规则是:将using语句放在namespace中。按字母顺序对using语句进行排序。但是...Systemusing排在第一位(仍在尝试弄清楚这是否意味着只是usingSystem;或using系统[.*];).所以,我的用例:我发现了一个错误并决定我至少需要添加一个可理解的断言,以减轻下一个人调试的痛苦。所以我开始输入Debug.Assert(并且intellisense将其标记为红色。我将鼠标悬停在Debug上以及usingSystem.Diagnostics;和System.Diagnostics.Debug我选择前者。这会在所有其他using语句之后

C# 7 模式匹配与元组

是否可以像这样使用c#7在switch语句中使用具有模式匹配的元组:switch(parameter){case((object,object))tObjwhentObj.Item1=="ABC":break;}我收到一条错误消息,提示tObj在当前上下文中不存在。我也试过这个:switch(parameter){case(object,object)tObjwhentObj.Item1=="ABC":break;}这很好用:switch(parameter){caseMachineModelmodelwhenmodel.Id=="123":break;}

c# - 调用使用 yield 返回的方法时出现错误 'Iterator cannot contain return statement '

我希望有更好的方法来编写此方法和重载,同时减少代码重复。我想返回列表中项目之间的一系列增量。这个方法:-publicstaticIEnumerableCalculateDeltas(thisIEnumerablesequence){decimalprev=default(decimal);foreach(variteminsequence){varcurrent=item;decimaldiff=current-prev;prev=item;yieldreturndiff;}}工作得很好。然后我想到了一个允许绝对增量的重载,但如果不需要绝对值,则会调用原始方法:-publicstati