我想知道是否有一种很好的编码方式:
return IOTools.CreateFile(@"D:\test")
&& IOTools.CreateDir(@"D:\test_folder\")
&& IOTools.DeleteFile(@"D:\test_file_2")
&& IOTools.DeleteDir(@"D:\test_folder_2\");
我知道我可以把它全部放在其他函数中,并在每个条件后使用 if 语句返回 false,但也许还有另一种方法可以阻止程序在条件为 false 时尝试执行下一个条件?
最佳答案
&&
已经是 short-circuiting运算符(operator)。因此,一旦一个条件为 false
,它就会停止。
if x is false, y is not evaluated, because the result of the AND operation is false no matter what the value of y is. This is known as "short-circuit" evaluation.
顺便说一句,||
也会在一个条件为 true
时立即停止评估。
如果您要求更易读的方式,您可以使用变量:
bool canCreateFile = IOTools.CreateFile(@"D:\test");
bool canCreateDir = IOTools.CreateDir(@"D:\test_folder\");
bool canDeleteFile = IOTools.DeleteFile(@"D:\test_file_2");
bool canDeleteDir = IOTools.DeleteDir(@"D:\test_folder_2\");
return canCreateFile && canCreateDir && canDeleteFile && canDeleteDir;
如果代码变得太复杂,我会使用变量来提高可读性、可维护性和可测试性。
关于c# - 在许多条件下编写 return 语句的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22042393/