2012年09月04日
川俣晶の縁側ソフトウェア技術雑記 total 3318 count

あずがまん大王

Written By: 川俣 晶連絡先

「C#のまめ知識~。↓これはコンパイルを通らない」

using System;

class Program

{

    static void Main(string[] args)

    {

        object a = 1;

        Console.WriteLine((a as int) + 1);

    }

}

「なぜダメなの?」

「as演算子は参照型やnull許容型でしか使用できないからだ」

「なぜそんな制約が?」

「考えれば分かるが、as演算子は変換できないときnull値になる。nullになれない型とは相容れないよ」

「どうすればいいの?」

「asを使わずキャストで解決しちゃうのが手っ取り早い」

        Console.WriteLine((int)a + 1);

「なぜこれなら通るの?」

「キャストは変換できないとき例外を投げるから、null値になれるかどうかは関係ない」

「値型のとき、asは我慢せよということだね」

「そうだ。キャストはかっこ悪いと思っても、ここは、あずがまんだ」

「この話、どこまで本気か分からないよ!」