草庐IT

packed-switch

全部标签

c# - 为什么 "Not all code paths return a value"带有 switch 语句和枚举?

我有以下代码:publicintMethod(MyEnummyEnum){switch(myEnum){caseMyEnum.Value1:return1;caseMyEnum.Value2:return2;caseMyEnum.Value3:return3;}}publicenumMyEnum{Value1,Value2,Value3}我收到错误:“并非所有代码路径都返回一个值”。我不明白switch语句怎么可能永远不会跳转到指定的情况之一。enum能否以某种方式成为null? 最佳答案 毫无疑问myEnum的值将是这些值之一。不

c# - 将 string.Contains() 与 switch() 一起使用

我正在做一个我使用的C#应用程序if((message.Contains("test"))){Console.WriteLine("yes");}elseif((message.Contains("test2"))){Console.WriteLine("yesfortest2");}有什么方法可以改变switch()的if()语句吗? 最佳答案 更正[Mr.C]的回答。随着VS2017RC的发布及其对C#7的支持,它的工作方式如下:switch(message){casestringawhena.Contains("test2")

c# - HTML Agility Pack strip 标签不在白名单中

我正在尝试创建一个函数来删除不在白名单中的html标签和属性。我有以下HTML:firsttextsecondtextheresometextheresometextheresometwxthere我正在使用HTML敏捷包,目前我拥有的代码是:staticListWhiteNodeList=newList{"b"};staticListWhiteAttrList=newList{};staticHtmlNodehtmlNode;publicstaticvoidRemoveNotInWhiteList(outstring_output,HtmlNodepNode,ListpWhiteLi

c# 7.0 : switch on System. 类型

没有现有问题可以回答这个问题。在c#7中,我可以直接在System.Type上切换吗?当我尝试时:switch(Type){casetypeof(int):break;}它告诉我typeof(int)需要是一个常量表达式。是否有一些语法糖可以让我避免casenameof(int):并直接比较类型是否相等?nameof(T)在case语句中并不完全好,因为命名空间。因此,尽管名称冲突可能不适用于int,但它将适用于其他比较。换句话说,我正在尝试比这更类型安全:switch(Type.Name){casenameof(Int32):casenameof(Decimal):this.valu

c# - 您如何使该switch语句尽可能快?

2009-12-04更新:有关此处发布的许多建议的概要分析结果,请参见下文!问题考虑以下非常无害,非常简单的方法,该方法使用switch语句返回定义的枚举值:publicstaticMarketDataExchangeGetMarketDataExchange(stringActivCode){if(ActivCode==null)returnMarketDataExchange.NONE;switch(ActivCode){case"":returnMarketDataExchange.NBBO;case"A":returnMarketDataExchange.AMEX;case"B

c# - 为什么 if 语句有效但 switch 语句无效

我正在尝试使用字符串的字符索引和使用this的枚举创建一个switch语句包装器从描述中获取所选枚举的值。它几乎允许您将字符串存储到枚举值。这是我的if语句:if(msgComingFromFoo[1]==Convert.ToChar(Message.Code.FOO_TRIGGER_SIGNAL.EnumDescriptionToString())){//foo}这是我的switch语句:switch(msgComingFromFoo[1]){caseConvert.ToChar(Message.Code.FOO_TRIGGER_SIGNAL.EnumDescriptionToStr

c# - 在 C# 中计算 Switch 语句中的表达式

我必须在switch中实现以下内容声明:switch(num){case4://somecode;break;case3://somecode;break;case0://somecode;break;case是否可以让switch语句评估case?如果没有,我该怎么做? 最佳答案 我知道这个话题已经很老了,但如果现在有人仍在C#7中寻找答案,那是有可能的。这是一个例子:switch(value){casevarexpressionwhenvalue=0&&value 关于c#-在C#中

c# - nuget-packing a csproj 与 nuspec 之间的区别

最近,我开始从我的几个项目中打包nuget包。首先,我从PackageExplorer应用程序开始。这是一个很好的工具,但如果你进行持续集成,它的用处就不大了。然后我研究了指定nuspec模板文件,并传递变化的数据,例如版本号,作为命令行参数。后来想知道如何定义nuget包依赖。事实证明,如果您指定csproj,nuget.exe已经基于package.config执行此操作。此外,它还从程序集信息中提取作者、版本、版权等相关数据。我现在缺少的是在命令行中指定licenseUrl的能力。但我希望这个问题更通用。所以我要问:打包nuget包的首选方式是什么?

c# - 跳出包含 switch 语句的 while 循环

我无法弄清楚如何跳出包含switch语句的循环。break从switch中跳出,而不是从循环中跳出。对此可能有更优雅的解决方案。我已经实现了一个标志,开始时为true,然后设置为false并结束循环。你能提供更好的解决方案吗?背景:此代码用于条码工作流系统。我们有内置条形码扫描仪的PocketPC。此代码用于其中一项功能。它在整个例程中提示用户输入不同的数据。这件作品允许他们滚动浏览一些库存记录,在PocketPC终端(分页结果)上显示该信息,并允许他们输入“D”表示完成,输入“Q”表示退出。这是当前需要改进的C#示例:do{switch(MLTWatcherTCPIP.Get().T

c# - 从 switch block 中跳出 foreach 循环

如何在switchblock中跳出foreach循环?通常,您使用break,但如果您在switchblock中使用break,它只会让您离开switchblock,foreach循环将继续执行:foreach(varvinmyCollection){switch(v.id){case1:if(true){break;}break;case2;break}}当我需要在switchblock内跳出foreach时,我目前正在做的是设置一个bool值在循环外为true并在每次输入foreach时和进入switchblock之前检查此bool的值。像这样:boolexitLoop;forea