草庐IT

if-cases

全部标签

c# - 赋值前的冗余比较 & "if"

例子如下:if(value!=ageValue){ageValue=value;}我的意思是,如果我们将一个变量的值赋给另一个变量,为什么我们需要检查它们是否具有相同的值?这让我很困惑。这是更广泛的背景:privatedoubleageValue;publicdoubleAge{get{returnageValue;}set{if(value!=ageValue){ageValue=value;}}} 最佳答案 下面是检查非常有用的代码示例:publicclassMyClass{...intageValue=0;publicintA

c# - if else with razor 简写

我在我的View中使用它并希望它只显示"is"或“否”但它显示False?"yes":"No"@myPosts.Contains(item.ID)?"Yes":"No"这里有什么问题吗? 最佳答案 您需要括号才能使用表达式:@(myPosts.Contains(item.ID)?"Yes":"No") 关于c#-ifelsewithrazor简写,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

c# - if else with razor 简写

我在我的View中使用它并希望它只显示"is"或“否”但它显示False?"yes":"No"@myPosts.Contains(item.ID)?"Yes":"No"这里有什么问题吗? 最佳答案 您需要括号才能使用表达式:@(myPosts.Contains(item.ID)?"Yes":"No") 关于c#-ifelsewithrazor简写,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

c# - LINQ + Foreach 与 Foreach + If

我需要遍历对象列表,只对bool属性设置为true的对象执行某些操作。我在这段代码之间争论foreach(RouteParameterparameterinparameters.Where(p=>p.Condition)){//dosomething}和这段代码foreach(RouteParameterparameterinparameters){if!parameter.Conditioncontinue;//dosomething}第一个代码显然更简洁,但我怀疑它将遍历列表两次-一次用于查询,一次用于foreach。这不会是一个很大的列表,所以我并不过分关心性能,但循环两次的想法

c# - LINQ + Foreach 与 Foreach + If

我需要遍历对象列表,只对bool属性设置为true的对象执行某些操作。我在这段代码之间争论foreach(RouteParameterparameterinparameters.Where(p=>p.Condition)){//dosomething}和这段代码foreach(RouteParameterparameterinparameters){if!parameter.Conditioncontinue;//dosomething}第一个代码显然更简洁,但我怀疑它将遍历列表两次-一次用于查询,一次用于foreach。这不会是一个很大的列表,所以我并不过分关心性能,但循环两次的想法

C# if-null-then-null 表达式

只是出于好奇/方便:C#提供了两个我所知道的很酷的条件表达式功能:stringtrimmed=(input==null)?null:input.Trim();和stringtrimmed=(input??"").Trim();对于我经常遇到的情况,我想念另一个这样的表达方式:如果输入引用为空,则输出应该为空。否则,输出应该是访问输入对象的方法或属性的结果。在我的第一个例子中我已经完全做到了,但是(input==null)?null:input.Trim()非常冗长且不可读。对于这种情况是否还有另一个条件表达式,或者我可以优雅地使用??运算符吗? 最佳答案

C# if-null-then-null 表达式

只是出于好奇/方便:C#提供了两个我所知道的很酷的条件表达式功能:stringtrimmed=(input==null)?null:input.Trim();和stringtrimmed=(input??"").Trim();对于我经常遇到的情况,我想念另一个这样的表达方式:如果输入引用为空,则输出应该为空。否则,输出应该是访问输入对象的方法或属性的结果。在我的第一个例子中我已经完全做到了,但是(input==null)?null:input.Trim()非常冗长且不可读。对于这种情况是否还有另一个条件表达式,或者我可以优雅地使用??运算符吗? 最佳答案

c# - Switch case 中额外大括号的用途是什么?

我对这件事很好奇……看例子:switch(x){case(a):{//dostuff}break;case(b)://dostuffbreak;}我一生都像案例b一样完成它,但是由于C#允许我使用它,而VisualStudio允许我折叠那个东西,我很好奇-案例a(带大括号)之间的真正区别是什么和案例b? 最佳答案 一对大括号(不是方括号--[]--也不是圆括号--()--但包含零个或多个语句的大括号{})是C#中的合法语句,因此可以出现在语句可以合法出现的任何地方。正如其他人指出的那样,这样做的典型原因是因为这样的语句引入了一个新的

c# - Switch case 中额外大括号的用途是什么?

我对这件事很好奇……看例子:switch(x){case(a):{//dostuff}break;case(b)://dostuffbreak;}我一生都像案例b一样完成它,但是由于C#允许我使用它,而VisualStudio允许我折叠那个东西,我很好奇-案例a(带大括号)之间的真正区别是什么和案例b? 最佳答案 一对大括号(不是方括号--[]--也不是圆括号--()--但包含零个或多个语句的大括号{})是C#中的合法语句,因此可以出现在语句可以合法出现的任何地方。正如其他人指出的那样,这样做的典型原因是因为这样的语句引入了一个新的

c# - if 语句后的变量声明

另一个论坛上出现了一个问题,我知道如何解决它,但它揭示了我特有的编译器功能。该人收到错误“嵌入式语句不能是声明或标记语句”,因为他们在没有括号的if语句后声明了一个变量。这不是他们的意图,但他们注释掉了紧跟在if语句之后的代码行,这使得变量声明成为实际要执行的代码行。不管怎样,这就是背景,让我想到了这里。下面的代码是非法的if(true)inti=7;但是,如果将其括在括号中,则一切都是合法的。if(true){inti=7;}这两段代码都没有用。但是第二个还可以。这种行为的具体解释是什么? 最佳答案 C#languagespeci