嵌套if或者如果使用And运算符,这是更好的方法吗?
单身如果与和
if (txtPackage.Text != string.Empty && txtPackage.Text == "abc") { // }
嵌套如果
if (txtPackage.Text != string.Empty) { if (txtPackage.Text == "abc") { // } }
Timothy Khou.. 7
我不打算进入,但看到这里的一些答案似乎是"我喜欢我的代码看起来像这样"......我觉得我应该说些什么:)
"更好"意味着代码执行速度更快,或者更易读/可扩展.你会想你的窝,如果在的情况下,你将可能有多个检查所有的都有一个共同的要求.
例:
if (myThingy != null) { if (myThingy.Text = "Hello") ... if (myThingy.SomethingElse = 123) ... }
编辑:还需要说,嵌套你的IF需要比单个IF更多的CPU周期(因此"慢").最重要的是,您的条件顺序可以大大提高性能.
再次出现:
if (somethingQuick() && somethingThatTakesASecondToCalculate()) ...
比(当然)更快
if (somethingThatTakesASecondToCalculate() && somethingQuick()) ...
因为如果IF的第一部分失败,第二部分甚至不会被执行,从而节省了时间.
我不打算进入,但看到这里的一些答案似乎是"我喜欢我的代码看起来像这样"......我觉得我应该说些什么:)
"更好"意味着代码执行速度更快,或者更易读/可扩展.你会想你的窝,如果在的情况下,你将可能有多个检查所有的都有一个共同的要求.
例:
if (myThingy != null) { if (myThingy.Text = "Hello") ... if (myThingy.SomethingElse = 123) ... }
编辑:还需要说,嵌套你的IF需要比单个IF更多的CPU周期(因此"慢").最重要的是,您的条件顺序可以大大提高性能.
再次出现:
if (somethingQuick() && somethingThatTakesASecondToCalculate()) ...
比(当然)更快
if (somethingThatTakesASecondToCalculate() && somethingQuick()) ...
因为如果IF的第一部分失败,第二部分甚至不会被执行,从而节省了时间.
如果事实上txtPackage.Text不为空但包含"abc"之外的其他内容,您是否会在'嵌套if'示例中执行不同的操作?
如果你不是,我会问你为什么要检查string.empty?
你可以写:
if (txtPackage.Text == "abc") { // }
并完成它.
完全取决于你最终想做什么.
没有人提到维护该代码.哪个更容易调试?
如果失败了:
if (thisIsTrue && thisIsTrueToo) doStuff();
你知道这两个陈述中的一个失败了,但不是哪一个.
如果失败了:
if (thisIsTrue) { if (thisIsTrueToo) doStuff(); }
您的异常会告诉您行号.我说要方便维护,因为你可能不会永远使用这个代码.