动态创建可空类型
本文关键字:类型 创建 动态 | 更新日期: 2023-09-27 18:01:18
我需要将Type变量设置为可空变量。例如
public Type CreateNullable(Type type){
if (type.IsValueType)
return Nullable<type>;
// Is already nullable
return type;
}
我看到有有限数量的ValueType,我想我将创建一个所有值类型为空的字典,并返回它。但我很想知道是否有更聪明的方法。
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;
}