-3

重複の可能性:
リフレクションによる Nullable 型の検出

私はこのコードを持っています:

string type = string.Empty;
PropertyInfo[] propertyInfos = typeof(T).GetProperties();
foreach (var item in propertyInfos)
    if (item.Name.ToUpper() == searchField.ToUpper())
    {
        type = item.PropertyType.FullName;
        break;
    }   

switch (type)
{
    case "System.Int32":
        //...
        break;
    case "System.Single":
        //...
        break;
}

コードは機能しますが、問題は型が nullable の場合です。型が nullable かどうかはどうすればわかりますか? null 許容型 (int32? long? double?) と、文字列をこの null 許容型に変換する方法は?

ありがとう、

4

1 に答える 1

0

以下のコードを試してみると、そのために役立ちます

System.Reflection.FieldInfo[] fieldsInfos = typeof(NullWeAre).GetFields();

        foreach (System.Reflection.FieldInfo fi in fieldsInfos)
        {
            if (fi.FieldType.IsGenericType
                && fi.FieldType.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))
            {
                // We are dealing with a generic type that is nullable
                Console.WriteLine("Name: {0}, Type: {1}", fi.Name, Nullable.GetUnderlyingType(fi.FieldType));
            }

    }
于 2012-12-18T07:20:54.223 に答える