简化此功能是否可接受/良好风格:boolTryDo(Class1obj,SomeEnumtype){if(obj.CanDo(type)){returnDo(obj);}else{returnfalse;}}作为:boolTryDo(Class1obj,SomeEnumtype){returnobj.CanDo(type)&&Do(obj);}第二个版本更短,但可以说不太直观。 最佳答案 我要编写的代码是:returnobj.CanDo(type)?Do(obj):false; 关于c#
本篇文章带大家聊聊trycatch的执行过程,有时候在开发的过程中,try代码里如果出现异常,catch后的步骤还会继续执行吗?以及finally的使用。下面来分析一下几种使用场景:场景一:try代码块中出现异常后,系统会继续执行catch代码块的程序。catch代码块外的代码也会继续被执行。/***CreatedBywuang*CreateDate2022/7/1217:47*Description:*/publicclassTryCatchDemo{publicstaticvoidmain(String[]args){try{int[]myNumbers={1,2,3};System.ou
我现在看到了两种不同的方法来制作bool返回方法:boolCase1(){if(A)returntrue;elsereturnfalse;}boolCase2(){if(A)returntrue;returnfalse;}哪个更快?不写else只是为了节省一行,使其更清晰,还是可以忽略不计的性能提升是否有意义? 最佳答案 没有。即使我们查看它们的IL代码,它们也具有相同的IL代码,因此它们之间没有性能差异。使用对您而言更易读的。.methodprivatehidebysiginstanceboolCase1()cilmanaged{
我现在看到了两种不同的方法来制作bool返回方法:boolCase1(){if(A)returntrue;elsereturnfalse;}boolCase2(){if(A)returntrue;returnfalse;}哪个更快?不写else只是为了节省一行,使其更清晰,还是可以忽略不计的性能提升是否有意义? 最佳答案 没有。即使我们查看它们的IL代码,它们也具有相同的IL代码,因此它们之间没有性能差异。使用对您而言更易读的。.methodprivatehidebysiginstanceboolCase1()cilmanaged{
场景我有一个执行数据库操作的方法(比方说)。如果在该操作期间引发任何异常,我只想将该异常抛给调用者。我不想在catchblock中执行任何特定任务,假设调用者会对该异常做任何它想做的事情。在这种情况下,哪种异常处理技术是合适的?try{//Someworkthatmaygenerateexception}catch(Exception){throw;}finally{//Somefinalwork}上面的是否等同于下面的try/catch/finally?try{//Someworkthatmaygenerateexception}catch{throw;}finally{//Some
场景我有一个执行数据库操作的方法(比方说)。如果在该操作期间引发任何异常,我只想将该异常抛给调用者。我不想在catchblock中执行任何特定任务,假设调用者会对该异常做任何它想做的事情。在这种情况下,哪种异常处理技术是合适的?try{//Someworkthatmaygenerateexception}catch(Exception){throw;}finally{//Somefinalwork}上面的是否等同于下面的try/catch/finally?try{//Someworkthatmaygenerateexception}catch{throw;}finally{//Some
我有一段代码:using(StreamReaderstream=newStreamReader(file.OpenRead(),Encoding)){char[]buffer=newchar[chunksize];while(stream.Peek()>=0){intreadCount=stream.Read(buffer,0,chunksize);yieldreturnnewstring(buffer,0,readCount);}}现在我必须用try-catchblock包围它try{using(StreamReaderstream=newStreamReader(file.Open
我有一段代码:using(StreamReaderstream=newStreamReader(file.OpenRead(),Encoding)){char[]buffer=newchar[chunksize];while(stream.Peek()>=0){intreadCount=stream.Read(buffer,0,chunksize);yieldreturnnewstring(buffer,0,readCount);}}现在我必须用try-catchblock包围它try{using(StreamReaderstream=newStreamReader(file.Open
我想知道try..catch是否可以强制执行进入catch并在其中运行代码?此处示例代码:try{if(AnyConditionTrue){//runsomecode}else{//gocatch}}catch(Exception){//runsomecodehere...} 最佳答案 try{if(AnyConditionTrue){//runsomecode}else{thrownewException();}}catch(){//runsomecodehere...}但正如Yuck所说,我不推荐这样做。您应该退后一步来审视您的
我想知道try..catch是否可以强制执行进入catch并在其中运行代码?此处示例代码:try{if(AnyConditionTrue){//runsomecode}else{//gocatch}}catch(Exception){//runsomecodehere...} 最佳答案 try{if(AnyConditionTrue){//runsomecode}else{thrownewException();}}catch(){//runsomecodehere...}但正如Yuck所说,我不推荐这样做。您应该退后一步来审视您的