[英]Create a nullable type dynamically
我需要将Type变量设置为可为空的变量。 例如
public Type CreateNullable(Type type){
if (type.IsValueType)
return Nullable<type>;
// Is already nullable
return type;
}
我看到的是ValueType的数量有限,我想我将创建一个所有值类型都可以为null的Dictionary,然后将其返回。 但是我很想看看是否有更聪明的方法。
public Type CreateNullable(Type type){
if (type.IsValueType)
return typeof(Nullable<>).MakeGenericType(type);
// Is already nullable
return type;
}
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.