草庐IT

packed-switch

全部标签

c# - 如何在类型上使用 switch-case?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Isthereabetteralternativethanthisto'switchontype'?我需要遍历我的类的所有属性并检查它的int类型是否需要做某事,如果它的字符串..然后做某事。我需要它使用开关盒。在这里,我按以下方式使用switch,但它需要一些常量。看下面的代码:publicstaticboolValidateProperties(objecto){if(o!=null){varsourceType=o.GetType();varproperties=sourceType.GetPropert

c# - switch 语句中的 switch 语句?

我必须评估很多条件。就我而言,我必须做这样的事情:switch(id){case5://switchsomeothercasesherecase6://setsomevalue...}在案例5中使用另一个开关是否是好的做法?如果不是,那什么更好?有if语句吗? 最佳答案 我会调用一个特定于案例5的函数,然后在该函数中包含切换案例。例如:switch(id){case5:FunctionFiveSpecific(id);case6://setsomevalue...}案例5的具体功能:privatevoidFunctionFiveSp

c# - 如何使用 HTML Agility Pack 从网站检索所有图像?

我刚刚下载了HTMLAgilityPack,文档中没有任何示例。我正在寻找一种从网站下载所有图像的方法。地址字符串,而不是物理图像。我需要提取每个img标签的来源。我只是想感受一下图书馆及其可以提供的服务。每个人都说这是完成这项工作的最佳工具。编辑publicvoidGetAllImages(){WebClientx=newWebClient();stringsource=x.DownloadString(@"http://www.google.com");HtmlAgilityPack.HtmlDocumentdocument=newHtmlAgilityPack.HtmlDocum

c# - 如何对基于枚举的 switch 语句的默认情况进行单元测试

我在工厂中有一个switch语句,它根据传入的枚举值返回一个命令。类似于:publicICommandCreate(EnumTypeenumType){switch(enumType){case(enumType.Val1):returnnewSomeCommand();case(enumType.Val2):returnnewSomeCommand();case(enumType.Val3):returnnewSomeCommand();default:thrownewArgumentOutOfRangeException("UnknownenumType"+enumType);}}

c# - BitmapImage 中的 Uri Pack 和 ":,,,"是什么?

我添加的Image.Source我必须输入以下内容:playIcon.Source=newBitmapImage(newUri(@"pack://application:,,,/TempApplication2;component/Images/play.png"));我正在从Web开发转向WPFC#,但我不明白为什么设置路径会有额外的内容,而在CSS中我只是添加一个路径字符串。谁能解释一下为什么有Uri、pack和“:,,,”,Application2:component?我是WPFC#的新手。 最佳答案 包uri用于识别和定位应

c# - 如何在子类的工厂方法中避免 switch-case

假设我们有一组类(卡片,为了它),我们需要根据一些标识符来实例化它们。工厂方法看起来像这样:publicCardGetCard(intcardNumber){switch(cardNumber){case13:returnnewKing();case12:returnnewQueen();case11:returnnewJack();}//...}我想要的是避免这个开关。为什么?也许我想在功能中重用这个比较。我想出的是这样的:privateDictionarycardTypes={{13,typeof(King)},{12,typeof(Queen)},{11,typeof(Jack)

c# - 为什么 switch for enum 接受隐式转换为 0 但不接受任何其他整数?

有一个:enumSomeEnum{A=0,B=1,C=2}现在编译器允许我写:SomeEnumx=SomeEnum.A;switch(x){case0://0被认为是SomeItems.A。但我不会写:SomeEnumx=SomeEnum.A;switch(x){case0:break;case1://为什么只有0存在隐式转换? 最佳答案 来自ECMA-334(C#LanguageSpecification)13.1.3ImplicitenumerationconversionsAnimplicitenumerationconver

c# - 使用 Action 字典而不是 switch 语句

我正在审查我的一些旧代码(有一些空闲时间),我注意到一个相当冗长的switch语句。由于获得了新知识,我将其重构为以下形式:privateDictionarycreateView{get{returnnewDictionary(){{"Standard",CreateStudySummaryView},{"ByGroup",CreateStudySummaryByGroupView},{"ByGroup/Time",CreateViewGroupByHour}};}}您认为这是一种良好的做法,还是仅仅是一种多余且不必要的情况?我热衷于确保我学习的新技术不是为了聪明而聪明,而是它们实际上

c# - "switch"语句评估线程安全吗?

考虑以下示例代码:classMyClass{publiclongx;publicvoidDoWork(){switch(x){case0xFF00000000L://dowhatever...break;case0xFFL://dowhatever...break;default://notifythatsomethinggoingwrongthrownewException();}}}忘记代码片段的无用性吧:我怀疑的是switch语句的行为。假设x字段只能有两个值:0xFF00000000L或0xFFL。上面的开关不应该属于“默认”选项。现在假设一个线程正在执行“x”等于0xFFL的

c# - 使用 Html Agility Pack 从 html 中抓取所有文本

输入foobarbaz输出foobarbaz我知道htmldoc.DocumentNode.InnerText,但它会给出foobarbaz-我想获取每个文本,而不是一次获取所有文本。 最佳答案 XPATH是你的friend:)HtmlDocumentdoc=newHtmlDocument();doc.LoadHtml(@"foobarbaz");foreach(HtmlNodenodeindoc.DocumentNode.SelectNodes("//text()")){Console.WriteLine("text="+node