2017-10-20 1 views
-1

イムと私は、この行に「冗長キャスト」を持っていることに気づい:冗長圧縮比をワークアウトVisual Studioで鋳造

double ratio = (double)data.Length/(double)comp.Length; 

が明らかに倍増するキャストせずに、両方の配列の長さを分割することだけ整数を返します。番号の構成要素。

しかし、なぜこのキャストは冗長ですか?

1つの長さに1つだけキャストすると、警告が削除されます。私の理解へ

私たちが持っていた場合:その後、潜在的に他の開発者は、ここで算出されているもの値についての混乱を引き起こす

double ratio = (double)data.Length/comp.Length; 

または

double ratio = data.Length/(double)comp.Length; 

wouldntのを。

暗黙のキャストを使用すると、コードの可読性の問題が発生する可能性があります。特に、より複雑な1行の計算(実際には別の可読性の問題です)。

私はまた、異なるフォームへのキャスト値は、キャストが式で行われる場所によって異なる出力を生成すると考えました。

+1

それは冗長です。すなわち、そのキャストを追加または削除しても結果には影響しません。冗長性は、この場合の可読性とは関係ありません。また、それが重複しているということは、それが必要なことではないことを意味するわけではありません。 – Evk

+0

私はこの質問を "私は手動ではありません"という質問であるため、トピックを外すことに投票しています –

答えて

1

開発者として、私は

double ratio = (double)data.Length/comp.Length; 

または

double ratio = data.Length/(double)comp.Length; 

が私を混同することはありませんと言うことができます。私はrecoginzeこの "パターン":

  1. 除算演算
  2. 一方のオペランドが第二オペランドと結果はダブルであることを、私は理解して、だから、double

にキャストされます。そして私(開発者として)は2番目のキャスト演算子を必要としません。

+0

このケースでは、コーディングの開発者の経験と使用する言語に主観的です。 – Gelion

+0

@ジェリオン私は、いくつかの主観的な経験は命名規則などのライブスタンドアートとなったと思います – Backs