「キャストうざいなーと思う時がある」
「どういうとき?」
「C#の計算結果は元がbyteでも基本的にint昇格なので、intになっちゃう。だから、それをbyte型の変数には戻せない」
「計算結果が確実にbyteの範囲でも?」
「そうだ。だから以下のようなコードを書いてしまった。image[resultIndex]はbyte型だ」
image[resultIndex] = (byte)(image[resultIndex] / 2);
「やはりちょっとまわりくどいね」
「ところが、このコードは大幅に簡素化できることに気づいた」
「えっ? どうするの?」
「これでいい」
「キャストはどこに行ってしまったの?」
「どこにも無い。必要無い。意味が無い」
「ああ、そうか。この場合計算結果は同じ変数に入るのが確実だから、型が変化することはあり得ないのか」
「キャストが無くなるだけではなく、変数名を書く回数も減って、括弧も減って、いいことずくめだ。凄く短くなる」