我需要将Type变量设置为可空的变量。例如
public Type CreateNullable(Type type){
if (type.IsValueType)
return Nullable<type>;
// Is already nullable
return type;
}
我看到因为ValueType有一定数量,我想我只是创建一个所有值类型的字典为可空,并返回。但我很想知道是否有更聪明的方式。
答案 0 :(得分:4)
public Type CreateNullable(Type type){
if (type.IsValueType)
return typeof(Nullable<>).MakeGenericType(type);
// Is already nullable
return type;
}
答案 1 :(得分:1)
Cory 提供的答案看起来不错,但我会添加检查以确保type
尚未Nullable<T>
:
public Type CreateNullable(Type type){
if (type.IsValueType && (!type.IsGenericType || type.GetGenericTypeDefinition() != typeof(Nullable<>)))
return typeof(Nullable<>).MakeGenericType(type);
// Is already nullable
return type;
}