冗余铸造
问题描述:
进出口工作了压缩比,我注意到,我在这条线“冗余演员”:冗余铸造
double ratio = (double)data.Length/(double)comp.Length;
显然分割两数组的长度没有铸造翻一番仅返回整数数字的组成部分。
但是为什么这个铸造是多余的?
仅在一个长度上投射一次长度就会消除警告。
我的理解是,如果我们有:
double ratio = (double)data.Length/comp.Length;
或
double ratio = data.Length/(double)comp.Length;
难道不认为那么可能会导致另一个开发者感到困惑的就是在这里被计算出什么样的价值。
它与我有接触,隐式强制转换会导致代码可读性问题。特别是在更复杂的一行计算(这实际上是另一个可读性问题)。
我也认为铸造值不同形式会产生不同的输出,这取决于铸造在方程中的位置。
那么它是多余的,即 - 添加或移除该投射对结果没有影响。在这种情况下,冗余与可读性无关。此外,这是多余的事实并不意味着它是必要的坏事。 – Evk
我在投票结束这个问题作为题外话,因为它是一个“我没有手册”的问题 –