草庐IT

if-cases

全部标签

c# - if(items != null) 在 foreach(T item in items) 之前是否多余?

我经常遇到类似下面的代码:if(items!=null){foreach(Titeminitems){//...}}基本上,if条件确保只有当items不为空时,foreachblock才会执行。我想知道是否真的需要if条件,或者foreach将处理items==null的情况。我的意思是,我可以简单地写吗foreach(Titeminitems){//...}不用担心items是否为空?if条件是否多余?或者这取决于items的类型,或者也可能取决于T? 最佳答案 你仍然需要检查if(items!=null)否则你将得到NullR

c# - ? : ? ?运算符代替 IF|ELSE

publicstringSource{get{/*if(Source==null){returnstring.Empty;}else{returnSource;}*/returnSource??string.Empty;}set{/*if(Source==null){Source=string.Empty;}else{if(Source==value){Source=Source;}else{Source=value;}}*/Source==value?Source:value??string.Empty;RaisePropertyChanged("Source");}}我可以将?:?

c# - lock(new object()) -- cargo 崇拜或一些疯狂的 "language special case"?

我正在审查一位顾问编写的一些代码,虽然已经出现了数十个危险信号,但我无法理解以下代码片段:privatevoidfoo(){if(InvokeRequired){lock(newobject()){if(m_bar!=null)Invoke(newfooDelegate(foo),newobject[]{});}}else{if(OnBazChanged!=null)OnBazChanged();}}lock(newobject())在这里做什么?应该没有任何影响,因为它总是锁定另一个对象,但这种锁定在整个代码中都是持久的,即使在非复制和粘贴的部分也是如此。这是C#语言中的一些特殊情况

c# - 使用 Case/Switch 和 GetType 来确定对象

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:C#-Isthereabetteralternativethanthisto‘switchontype’?如果您想切换一种对象,最好的方法是什么?代码片段privateintGetNodeType(NodeDTOnode){switch(node.GetType()){casetypeof(CasusNodeDTO):return1;casetypeof(BucketNodeDTO):return3;casetypeof(BranchNodeDTO):return0;casetypeof(LeafNodeDTO

c# - 在 C# 中使用 if/else 和 switch-case 之间有什么显着区别吗?

在C#中使用switch语句与使用if/else语句有什么好处/坏处。除了代码的外观之外,我无法想象会有那么大的不同。是否有任何原因导致生成的IL或相关的运行时性能会截然不同?相关:Whatisquicker,switchonstringorelseifontype? 最佳答案 SWITCH语句仅在调试或兼容模式下生成与IF相同的程序集。在发布时,它将被编译成跳转表(通过MSIL'switch'语句)-这是O(1)。C#(与许多其他语言不同)也允许打开字符串常量-这有点不同。为任意长度的字符串构建跳转表显然是不切实际的,因此大多数情

c# - "else if"比 "switch() case"快吗?

这个问题在这里已经有了答案:Isthereanysignificantdifferencebetweenusingif/elseandswitch-caseinC#?(21个回答)关闭2年前。我以前是Pascal人员,目前正在学习C#。我的问题如下:下面的代码是否比切换更快?inta=5;if(a==1){....}elseif(a==2){....}elseif(a==3){....}elseif(a==4){....}else....还有开关:inta=5;switch(a){case1:...break;case2:...break;case3:...break;case4:..

用于调试与发布的 C# if/then 指令

在解决方案属性中,我将我的唯一项目的配置设置为“发布”。在主例程的开头,我有这段代码,它显示“Mode=Debug”。我也在最上面有这两行:#defineDEBUG#defineRELEASE我是否在测试正确的变量?#if(DEBUG)Console.WriteLine("Mode=Debug");#elif(RELEASE)Console.WriteLine("Mode=Release");#endif我的目标是根据Debug模式和Release模式为变量设置不同的默认值。 最佳答案 DEBUG/_DEBUG应该已经在VS中定义了

c# - #if DEBUG 与条件 ("DEBUG")

在大型项目中哪个更好用,为什么:#ifDEBUGpublicvoidSetPrivateValue(intvalue){...}#endif或[System.Diagnostics.Conditional("DEBUG")]publicvoidSetPrivateValue(intvalue){...} 最佳答案 这真的取决于你要做什么:#ifDEBUG:此处的代码甚至不会在发布时到达IL。[Conditional("DEBUG")]:此代码将到达IL,但是对该方法的调用将被省略,除非在编译调用程序时设置了DEBUG.我个人根据情况

jquery - 使用 if 语句检查 div 是否为空

如果单独的div为空,我将尝试删除特定的div。这是我正在使用的:$(document).ready(function(){if('#leftmenu:empty'){$('#menuTitleWrapper').remove();$('#middlemenu').css({'right':'0','position':'absolute'});$('#PageContent').css({'top':'30px','position':'relative'});}});我认为这很接近,但我不知道如何编写代码来测试#leftmenu是否为空。感谢您的帮助!

javascript - 如何使用 JavaScript 在 switch case 语句中使用范围?

如何使用JavaScript在switchcase语句中使用范围?因此,我不想为每一种可能性编写代码,而是想将它们分组在范围内,例如:switch(myInterval){case0-2://doStuffWithFirstRange();break;case3-6://doStuffWithSecondRange();break;case6-7://doStuffWithThirdRange();break;default://doStuffWithAllOthers();} 最佳答案 您至少有四种选择:1。列出每个案例作为sho