基本的に、次のいずれかのようなコードが null 参照エラーなしで機能することを望みます。
int? i1 = default(int?);
int? i2 = new Nullable<Int32>();
int? i3 = new int?();
var t1 = i1.GetType();
var t2 = i2.GetType();
var t3 = i3.GetType();
null参照例外なしで、上記のiオブジェクトから型を取得できることを期待/期待しています。
これが不可能な場合、null 値を維持しながら Nullable Int への参照を作成するにはどうすればよいでしょうか。
更新:興味があり、リンクされた質問で完全に適用できない回答をふるいにかけたくない場合の解決策は次のとおりです。
private void Example()
{
var i = default(int?);
var t = this.GetDeclaredType(i);
}
private Type GetDeclaredType<T>(T obj)
{
return typeof(T);
}