ヌルポとみせかけてヌルリ
ヌルポってC#ではヌルリ(NullReferenceException)なんだね。知ってても何の得もないけど。
それはともかく、ヌルp・・・もといヌルリで落ちるのは恥とでも思われているのか、やたらといたるところでNullチェックを強いられているコードが目の前にある。
static class Checkers { public static bool IsNull(object p) { return p == null; } }
こんなのがあって、いたるところでCheckers.IsNull(Hoge)みたく使うことを強いられている。
それはまあいいのだが、このCheckers.IsNull(Hoge)の使い方でおやおや?とおもったのがint型のプロパティまでNullチェックしてること(↓コード)。
羹に凝りて膾を吹く、を地でいくような世界。
private static void Proc2() { myclass m = new myclass(); bool result2 = Checkers.IsNull(m.NonNullableValue); //これはつねにfalse Console.WriteLine("{0}", result2); } class myclass { public int NonNullableValue { get; set; } }
まさかint型プロパティの持ち主のNullチェックもできるのか?とおもったが
private static void Proc3() { myclass m2 = null; bool result2 = Checkers.IsNull(m2.NonNullableValue); //ヌルリ Console.WriteLine("{0}", result2); }
ヌルリで落ちた。うーん、int型プロパティまでNullチェックしようとした人の気持ちがわからん。チェックに引っかかったケースの動作確認どうしたのだろう?