草庐IT

while语句

全部标签

c# - Razor CSHTML 中的 Switch 语句

我正在ASP.NETMVC4、Twitter.Bootstap3.0.0和Razor中开发一个项目。在View中,我需要根据属性值显示按钮。使用switch语句,下面的示例不起作用(不显示任何内容):@switch(Model.CurrentStage){caseEnums.Stage.ReadyToStart:Html.ActionLink(Language.Start,"Start",new{id=Model.ProcessId},new{@class="btnbtn-success"});break;caseEnums.Stage.Flour:Html.ActionLink(La

c# - LINQ 在 SQL 语句中生成额外的 IS NULL 条件

我正在编写一些LINQ来根据电子邮件获取记录,但是,生成的SQL包含一个额外的ISNULL条件,它不需要存在,因为我正在检查参数值在将条件添加到查询之前在代码中为null。我的LINQ代码是:if(email!=null){query=query.Where(r=>r.Email==email);}由此产生的SQL条件为:(([Extent1].[Email]=@p__linq__0)OR(([Extent1].[Email]ISNULL)AND(@p__linq__0ISNULL)))(([Extent1].[Email]ISNULL)AND(@p__linq__0ISNULL))就

c# - 使用语句和 try-catch()-finally 重复?

using(...)语句是try{}finally{}的语法糖。但是如果我有如下的using语句:using(FileStreamfs=File.Open(path)){}现在我想捕获打开这个文件可能导致的异常(这是相当高风险的代码,因为它可能会因环境而失败),但是如果我在里面写try-catch会不会重复?当代码被编译为IL时,我认为当代码被JITted时重复将被删除?但是,我想捕获打开文件可能导致的异常(所以我应该将try-catch包装在using语句的范围之外),以及我在usingblock中所做的任何异常,所以我应该添加block内的try-catch。这似乎是我对CLR可能

c# - 我可以在锁中放一个返回语句吗

欺骗:returnstatementinalockprocedure:insideoroutside标题有点误导。我知道您可以做到,但我想知道对性能的影响。考虑这两个代码块。(没有错误处理)这个block在锁之外有returnpublicDownloadFileDequeue(){DownloadFiletoReturn=null;lock(QueueModifierLockObject){toReturn=queue[0];queue.RemoveAt(0);}returntoReturn;}这个block有return语句在锁中publicDownloadFileDequeue()

c# switch 语句比 vb.net 'case' 更受限制

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。我正在阅读一篇有趣的文章here它提出了一个关于vb.net中的“case”语句与C#中的“switch”语句的有趣观点,我已将其粘贴在下面:以下VisualBasicSelectCase语句无法在C#中用单个switch语句表示:DimConditionAsInteger=55SelectCaseConditionCase1,3To5,10,12,14

c# - DELETE 语句与 Entity Framework 的 SAME TABLE REFERENCE 约束冲突

我有一个带有自引用的表,其中ParentId是ID(PK)的FK。使用EF(代码优先),我建立了如下关系:this.HasOptional(t=>t.ParentValue).WithMany(t=>t.ChildValues).HasForeignKey(t=>t.ParentId);当我尝试删除子项及其父项时,EF向数据库发出的DELETE命令与我预期的顺序不符-它首先尝试删除父项记录。我意识到我在这里有几个选择(我都不喜欢):先删除子记录,进行完整保存/提交,然后删除父记录。考虑到我的模型及其维护逻辑的复杂性,这不是一个选项-我无法在需要时发出多个提交命令。在删除任何内容之前解除

c# - C# 中的 Switch 语句

这个问题在这里已经有了答案:Multiplecasesinswitchstatement(24个答案)Switchcase:canIusearangeinsteadofaonenumber[duplicate](16个答案)关闭1年前。有谁知道是否可以在switch语句中包含范围(如果可以,如何)?例如:switch(x){case1://dosomethingbreak;case2..8://dosomethingelsebreak;default:break;}编译器似乎不喜欢这种语法——它也不喜欢:case

c# - 我们在哪里使用 Debug/Trace 语句

我使用C#(使用VSIDE)进行开发。我对调试/跟踪语句感到困惑。我们在哪里以及为什么使用这些语句?我经常在其他开发人员的源代码中看到这些。谁能指点一下? 最佳答案 Debug语句仅出现在Debug版本中。Trace语句存在于调试和发布版本中。为了调试或检查,您可以将Debug和Trace语句放在要输出某些值的地方。这篇MS支持文章可能会引起您的兴趣:HowtotraceanddebuginVisualC#TheTraceclassroutesmessagestolisteners:classesthataredesignedtoa

c# - 在 LINQ 查询 'if' 语句中实现条件 'where' 语句

我正在尝试找出一种在我的数据模型中查询对象的方法,并且只包含那些不为空的参数。如下所示:publicListGetWidgets(stringcond1,stringcond2,stringcond3){MyDataContextdb=newMyDataContext();Listwidgets=(fromwindb.Widgetswhere...ifcond1!=nullw.condition1==cond1......ifcond2!=nullw.condition2==cond2......ifcond3!=nullw.condition3==cond3...selectw).T

c# - 在一种方法中使用多个 RETURN 语句是一种好习惯吗?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whyisitgoodpracticetoreturnattheendofamethod我想知道在一个方法中使用多个RETURN语句是否可以被视为良好做法,以及为什么。如果没有,我想知道您将如何以不同的方式重写代码。publicstringGetNominativeById(int?candidateId){if(candidateId.HasValue)returnrepepositoryCandidate.GetById(candidateId.Value).Nominative;elsereturnst