我有这个代码,需要确保所有结果变量都相等?
long result1 = timer.CalculateElapsedTimeInMinutes();
long result2 = timer.CalculateElapsedTimeInMinutes();
long result3 = timer.CalculateElapsedTimeInMinutes();
long result4 = timer.CalculateElapsedTimeInMinutes();
long result5 = timer.CalculateElapsedTimeInMinutes();
Run Code Online (Sandbox Code Playgroud)
这就是我所做的,但我觉得它可以用更简单的方式完成,也许不是吗?
bool allEqual = (result1 == result2) && (result3 == result4) && (result1 == result3) && (result1 == result5);
Run Code Online (Sandbox Code Playgroud)
谢谢.
Jon*_*eet 14
这只是关于可能存在的同异或什么的这样的一些哈克/高明位变换的方式-但你的代码使你想要做清楚什么,并且仍将是可笑的快.这成为瓶颈的可能性接近于0,不值得考虑IMO - 所以请使用最易读的代码.
不过,我在你的比较中会更加一致:
bool allEqual = (result1 == result2) &&
(result1 == result3) &&
(result1 == result4) &&
(result1 == result5);
Run Code Online (Sandbox Code Playgroud)
IMO,你可以直观地看到你已经覆盖了所有基地.
不,你需要至少n -1次比较.虽然我这样写:
bool allEqual = (result1 == result2)
&& (result2 == result3)
&& (result3 == result4)
&& (result4 == result5);
Run Code Online (Sandbox Code Playgroud)