ぱふの自由帳

ぱふの技術ブログ。メインはUnity。気の向くままに書く...目標は週末を除く毎日更新。

キャスト演算子とas演算子の違い

データ型を変換する方法としてキャスト演算子やas演算子があります。
この二つの違いがあやふやな方からすると、intからfloatに変換する際には以下のように書く方法を思いつくんじゃないでしょうか。

int hoge = 1234;
float s1 = (float)hoge;

int piyo = 1234;
float s2 = piyo as float;

実はこれ、下の方のコードは動きません。

違いは何だ?

キャスト演算子は変換に失敗した際に”InvalidCastException例外”を投げます。それに対して、as演算子は変換に失敗した際に”null”を返します。

おわり

微妙な違いですが知っとくと変換の時にエラーが起こりづらかったり、変換に失敗した時の処理方法を間違わずに実装でき少し幸せになれます。

初心者の方や熟練者の方を問わずTwitterのフォローお待ちしています…(`・ω・´) ミンナヨロシク!