5

typeプロパティを持つオブジェクトがあります。タイプがInt64に設定されていて、後でタイプ情報を取得しようとすると、System.Nullableが取得されます。

これがタイプ情報です

{Name = "Nullable`1" FullName = "System.Nullable`1[[System.Int64, mscorlib, Version=2.0.0.0]]"}

このタイプのSystem.Int64にアクセスするにはどうすればよいですか?

4

5 に答える 5

6

そのタイプまたはその基になるタイプのいずれかが必要な特定のタイプがあるようですNullable<T>。これを行う最善の方法は、次のようなものです。

Nullable.GetUnderlyingType(yourObject.Type) ?? yourObject.Type;

指定されたがそうでない場合にNullabe.GetUnderlyingType返すため、null 合体演算子 (??) を使用して値を元の型にデフォルト設定できます。nullTypeNullable<T>

于 2009-02-19T15:13:07.200 に答える
1
Type t = Nullable.GetUnderlyingType(nullableType);

MSDNを参照してください。

于 2009-02-19T14:59:13.147 に答える
1
if ( property.PropertyType.IsGenericType 
  && property.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>) )
于 2012-06-05T10:03:19.833 に答える
0

オブジェクトがnullでない場合、GetTypeはInt64を返します。

于 2009-02-19T14:59:38.950 に答える
0

type-property を「System.Int64」に設定している可能性があります。どこでも?そうしないと、あなたの行動を再現できません。

于 2009-02-19T15:02:48.613 に答える