2012年09月22日
川俣晶の縁側技術関連執筆情報『C#ショートコードプログラミング』読者サポート total 1169 count

C#ショートコードプログラミング・補遺・C#でキャストを外せるとき

Written By: 川俣 晶連絡先

「キャストうざいなーと思う時がある」

「どういうとき?」

「C#の計算結果は元がbyteでも基本的にint昇格なので、intになっちゃう。だから、それをbyte型の変数には戻せない」

「計算結果が確実にbyteの範囲でも?」

「そうだ。だから以下のようなコードを書いてしまった。image[resultIndex]はbyte型だ」

image[resultIndex] = (byte)(image[resultIndex] / 2);

「やはりちょっとまわりくどいね」

「ところが、このコードは大幅に簡素化できることに気づいた」

「えっ? どうするの?」

「これでいい」

image[resultIndex] /= 2;

「キャストはどこに行ってしまったの?」

「どこにも無い。必要無い。意味が無い」

「ああ、そうか。この場合計算結果は同じ変数に入るのが確実だから、型が変化することはあり得ないのか」

「キャストが無くなるだけではなく、変数名を書く回数も減って、括弧も減って、いいことずくめだ。凄く短くなる」