草庐IT

insert-if-non-existent

全部标签

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# - 在网络中断时使用 Directory.Exists 在网络文件夹上

我公司的代码库包含以下C#行:boolpathExists=Directory.Exists(path);在运行时,字符串path恰好是公司内部网上文件夹的地址-类似于\\company\companyFolder。当从我的Windows机器到内联网的连接建立时,这工作正常。但是,当连接断开时(就像今天那样),执行上面的行会导致应用程序完全卡住。我只能通过使用任务管理器将其终止来关闭应用程序。当然,在这种情况下,我宁愿让Directory.Exists(path)返回false。有办法做到这一点吗? 最佳答案 对于这种情况,无法更改

c# - The non-generic method cannot be used with type arguments in this context 是什么意思?

我有以下类和方法:publicclassUserManager:IDisposablewhereTUser:class,global::Microsoft.AspNet.Identity.IUserwhereTKey:global::System.IEquatable{publicvirtualTaskFindByIdAsync(TKeyuserId);和:privateApplicationUserManager_userManager;publicApplicationUserManagerUserManager{get{return_userManager??Request.Ge

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# - 性能计数器 - System.InvalidOperationException : Category does not exist

我有以下类,它返回IIS每秒的当前请求数。我每分钟调用RefreshCounters以保持每秒请求数刷新(因为它是平均值,如果我将它保留太久,旧值会影响结果太多)......当我需要显示当前RequestsPerSecond时,我调用该属性。publicclassCounters{privatestaticPerformanceCounterpcReqsPerSec;privateconststringcounterKey="Requests_Sec";publicstaticobjectRequestsPerSecond{get{lock(counterKey){if(pcReqsP

c# - 在 Directory.Delete 之后,Directory.Exists 有时会返回 true 吗?

我的行为很奇怪。我有,Directory.Delete(tempFolder,true);if(Directory.Exists(tempFolder)){}有时Directory.Exists返回true。为什么?可能是资源管理器打开了吗? 最佳答案 Directory.Delete调用WindowsAPI函数RemoveDirectory.记录观察到的行为:TheRemoveDirectoryfunctionmarksadirectoryfordeletiononclose.Therefore,thedirectoryisnot

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

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

c# - "Cannot insert explicit value for identity column in table when IDENTITY_INSERT is set to OFF"带复合键

我们最近向我们的数据库添加了一个新的“级别”——在整个数据库中的表中现有ID身份字段的上方/之前添加了一个键“Company_ID”。例如,如果一个表有ID然后是字段,它现在有Company_ID,然后是ID,然后是字段。这个想法是,这允许ID为提供给功能的每个不同的Company_ID值自动递增(Company_ID1可以有ID1、2、3等;Company_ID2可以有ID1、2、3等)。自增字段保持为ID。一个示例表是:[dbo].[Project]([Company_ID][int]NOTNULL,[ID][int]IDENTITY(1,1)NOTNULL,[DescShort]

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ɔɯǝɹ在他的评论中正确指出的那样,您可以更进一