草庐IT

if-cases

全部标签

c# - 如何简化重复的 if-then-assign 构造?

我有以下方法:protectedoverrideboolModifyExistingEntity(Productentity,ProductModelitem){boolisModified=false;if(entity.Title!=item.Title){isModified=true;entity.Title=item.Title;}if(entity.ServerId!=item.Id){isModified=true;entity.ServerId=item.Id;}returnisModified;}我想知道您是否可以建议一种更好的方法来实现该方法。问题很明显:每个属性5

c# - DBNull if 语句

我正在尝试执行一个存储过程,然后使用if语句检查空值,但我做空了。我是VB专家,所以如果我犯了小学生语法错误,请多多包涵。objConn=newSqlConnection(strConnection);objConn.Open();objCmd=newSqlCommand(strSQL,objConn);rsData=objCmd.ExecuteReader();rsData.Read();if(!(rsData["usr.ursrdaystime"].Equals(System.DBNull.Value))){strLevel=rsData["usr.ursrdaystime"].T

c# - : if(! 值) 或 if(flag == 值) 哪个更清晰?

我知道这是一个主观问题,所以如果需要关闭它,我深表歉意,但我觉得它经常出现,让我想知道是否普遍偏爱一种形式而不是另一种形式。显然,最好的答案是“重构代码,这样你就不需要测试是否存在错误”,但有时没有简单的方法可以做到这一点,“else”分支只是继续处理。所以当你必须有一个“ifnotfalse”结构时,这是首选标准:非运算符if(!value)或假的测试if(value==false) 最佳答案 if(!value)更容易/更快地遵循。正如你所说的主观。只要您始终如一,这就是主要的事情。编辑要补充的另一点-省略true/false关

c# - #if 调试 --> #if myOwnConfig?

有没有办法在VisualStudio中使用像“#ifDEBUG”这样的自定义配置我需要一个“#ifOFFLINE”,因为我的Build-Config的名称是“Offline”(也仅用于进一步的调试目的)...谢谢! 最佳答案 是的,这是可能的。说明:Build->Configurationmanager->Activesolutionconfiguration->New...创建一个名为:Offline的新配置。项目->属性->构建->配置->离线.条件编译符号,类型:OFFLINE。保存项目。重新启动VisualStudio(重新

c# - C#中有 "try to lock, skip if timed out"操作吗?

我需要尝试锁定一个对象,如果它已经被锁定就继续(超时后,或者没有它)。C#lock语句是阻塞的。 最佳答案 Ed为您提供了合适的功能。只是不要忘记调用Monitor.Exit()。您应该使用try-finallyblock来保证正确清理。if(Monitor.TryEnter(someObject)){try{//useobject}finally{Monitor.Exit(someObject);}} 关于c#-C#中有"trytolock,skipiftimedout"操作吗?,我们

c# - If string is not null or empty else 的一行

出于各种原因,我通常在整个应用程序中使用这样的东西:if(String.IsNullOrEmpty(strFoo)){FooTextBox.Text="0";}else{FooTextBox.Text=strFoo;}如果我要经常使用它,我将创建一个返回所需字符串的方法。例如:publicstringNonBlankValueOf(stringstrTestString){if(String.IsNullOrEmpty(strTestString))return"0";elsereturnstrTestString;}并像这样使用它:FooTextBox.Text=NonBlankVa

c# - 如何折叠 If、Else、For、Foreach 等子句?

这个问题在这里已经有了答案:VisualStudioC#statementcollapsing(12个答案)关闭7年前。我有时会被很长的子句卡住,我正在寻找一种允许我折叠它们的方法,就像我默认折叠类、方法和命名空间的方法一样。是否有VisualStudio扩展可以做到这一点?ReSharper和JustCode都不允许这样做。谢谢!

c# - 为什么 C# 允许在 case 之后而不是之前的语句?

为什么C#允许这个:vars="Nice";switch(s){case"HI":break;conststringx="Nice";casex:Console.Write("Y");break;}但不是这个:vars="Nice";switch(s){conststringx="Nice";casex:Console.Write("Y");break;} 最佳答案 因为你的缩进有误导性,第一个代码实际上是:vars="Nice";switch(s){case"HI":break;conststringx="Nice";casex:

c# - IF 是否比 IF-ELSE 表现更好?

这些代码块中哪一个执行得更好,哪一个更具可读性?我猜yield可以忽略不计,尤其是在第二个街区。我只是好奇。区block#1stringheight;stringwidth;if(myFlag==1){height="60%";width="60%";}else{height="80%";width="80%";}block#2stringheight="80%";stringwidth="80%";if(myFlag==1){height="60%";width="60%";}已更新我测试上面代码的结果是两个block执行相同区block#1myFlag=1:3Millisecond

C# 字典 : making the Key case-insensitive through declarations

我有一个Dictionary字典。以前是Dictionary但其他“标识符”已经开始发挥作用,现在将键作为字符串处理。问题是Guid我的源数据中的键为VarChar,所以现在是"923D81A0-7B71-438d-8160-A524EA7EFA5E"的关键与"923d81a0-7b71-438d-8160-a524ea7efa5e"不同(使用Guid时没有问题)。.NET框架真正好的(和甜蜜的)是我可以做到这一点:Dictionary_recordSet=newDictionary(StringComparer.InvariantCultureIgnoreCase);而且效果很好。但