草庐IT

if判断

全部标签

c# - 组合空检查和模式匹配的 'if' 语句时出错

以下按预期工作:dynamicfoo=GetFoo();if(foo!=null){if(fooisFooi){Console.WriteLine(i.Bar);}}但是如果我像这样组合if语句:if(foo!=null&&fooisFooi){Console.WriteLine(i.Bar);}然后我收到一个编译器警告使用未分配的局部变量“i”谁能解释为什么会这样? 最佳答案 看起来这实际上不是编译器错误。它之前被报告为错误here.但是,它已被关闭,因为它不是错误。原因是因为C#语言规范的这一部分(注意:我在这里引用GitHub

c# - 即使条件评估为 false,If 语句似乎也在评估

昨晚工作到很晚,我们试图弄清楚为什么会出现故障。验证检查在不应该的时候失败了。我们最终向这段代码添加了一条打印语句(从Reflector反汇编以检查代码是否确实是我们编写的内容):publicstaticstringRedacted(stringname,DateTimelastModified){longticks=lastModified.Ticks;if((ticks!=(ticks-(ticks%10000L)))&&(lastModified!=DateTime.MaxValue)){Log.Debug(string.Format("LastModifiedDate='{0}

c# - 如何判断 IQueryable 是否为 IOrderedQueryable?

我有一个IQueryable。我没有对其调用OrderBy或以其他方式对其进行任何操作。如果我这样做://forsomereason,isItOrderedisalwaystruevarisItOrdered=myQueryableisIOrderedQueryable为什么总是这样?(似乎不应该。)而且,更重要的是,我如何判断IQueryable是否已被订购?(即确实是一个IOrderedQueryable)我希望能够做这样的事情:if(myQueryableisIOrderedQueryable)myQueryable=myQueryable.ThenBy(...);elsemyQ

c# - Automapper:ForMember 中的复杂 if else 语句

假设Date是一个可为null的DateTime:Mapper.CreateMap().ForMember(dest=>dest.Date,opt=>opt.MapFrom(src=>{DateTime?finalDate=null;if(src.HasDate=="N"){//soitshouldbenull}else{endResult=DateTime.Parse(src.Date.ToString());}returnfinalDate;}));我得到的错误是:Error30Alambdaexpressionwithastatementbodycannotbeconverted

c# - 检查对象是否为 null 并在同一个 if 语句中比较对象的属性值是否安全?

请参阅线程标题。我是否可以安全地执行类似的操作而不用担心NullReferenceException,或者不能保证这些bool表达式将从左到右求值?//canthisthrowanNRE?if(obj==null||obj.property==value){//dosomething} 最佳答案 他们将从左到右进行评估,保证。所以是的,它是安全的。Theconditional-ORoperator(||)performsalogical-ORofitsbooloperands,butonlyevaluatesitssecondope

c# - 如何判断进程ID是否存在

我正在使用C#.NET2.0。我需要确定PID是否存在。我想出了以下代码:privateboolProcessExists(intiProcessID){foreach(ProcesspinProcess.GetProcesses()){if(p.Id==iProcessID){returntrue;}}returnfalse;}除了迭代所有进程之外,还有更好的方法吗? 最佳答案 快速说明:您永远无法确定除您自己之外的进程是否正在运行。您只能说它在最近的某个时间点运行过。进程可以在任何给定时刻简单地停止存在,包括您检查它是否具有匹配

c# - 如何判断app.config文件是否存在

有没有办法在不使用“File.Exists”的情况下查明app.config文件是否存在?我试过了if(!ConfigurationManager.ConnectionStrings.ElementInformation.IsPresent){...}但即使存在带有连接字符串的app.config,IsPresent也为false。编辑:我是否误解了IsPresent属性? 最佳答案 AppDomain报告它希望应用程序的配置文件所在的位置。您可以测试该文件是否实际存在(不需要虚拟AppSettings,也不需要尝试找出应该调用的配

c# - 是否可以在 C# 的 if-else 语句中定义类似 'between' 的内容?

想请教比我C#能力强的人。是否可以减少下面的代码if(val>20&&val40&&val72&&val假设我有超过10-11个if-else语句。缩短上述代码的最佳方法是什么?我想在sql中使用类似between的东西。 最佳答案 定义一个extensionmethod:publicstaticboolBetween(thisintsource,inta,intb){returnsource>a&&source然后,使用它:if(val.Between(20,40))//...正如oɔɯǝɹ在他的评论中正确指出的那样,您可以更进一

c# - Razor View 上的 If 语句(对于 CSS 类)

我需要根据是否阅读消息在CSS类之间切换。简单来说应该是这样的:if(item.status=="Unread"){...}else{...}虽然我很难实现这一目标。有什么可以告诉我完成这项工作的好处吗?我应该使用HTML帮助器还是什么?这是到目前为止的完整代码:@foreach(variteminModel){if(item.status=="Unread"){@Html.DisplayFor(modelItem=>item.timestamp)@Html.DisplayFor(modelItem=>item.subject)@Html.DisplayFor(modelItem=>i

c# - 如何判断 SqlConnection 是否附加了 SqlDataReader?

现在,这更多是出于好奇而非实际目的。如果您打开了一个SqlConnection并将一个SqlDataReader附加到它,然后尝试使用相同的SqlConnection运行另一个查询,那么它将抛出一个错误。我的问题是SqlConnection如何知道读取器已附加到它。HasDataReader没有公共(public)属性或任何东西,那么SqlConnection类怎么知道的?原始问题:(不再相关)你好,我正在为连接池和我们发生的更常见的错误设置一个小东西(它总是一个简单的修复,但我们不记得reader.Close()!)当我们有一个连接被很多类/方法使用并且一个方法打开数据读取器而忘记关