这两种将值加一的方法
if (Condition) int++;
和
int+= Convert.Toint32(Condition);
那么以一种或另一种方式书写是否有好处,或者它们基本相同?
最佳答案
我认为代码的清晰度取决于上下文。
在几乎所有普通情况下,
if (condition) i++;
...将更容易阅读。
但是,在这种情况下,可能会出现一些替代方法,使后续操作变得更容易。想象一下,如果这个清单很长:
var errorCount = 0
errorCount += Convert.ToInt32(o.HasAProblem);
errorCount += Convert.ToInt32(o.HasSomeOtherProblem);
errorCount += Convert.ToInt32(p.DoesntWork);
另一方面,对于上述内容,也许我会找到一种完全不同的代码结构方式,例如
var errorFlags = new [] {o.HasProblem,
o.HasSomeOtherProblem,
p.DoesntWork};
var errorCount = errorFlags.Count(a => a);
另外,构造
i += Convert.ToInt32(condition);
...可能会导致pipeline更加整洁,因为其中不涉及branch prediction。关键字是可以。
关于c# - “if(condition)int++”和int + =“Convert.Toint32(condition)”之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41578849/