Nullable通过HasValue = false的反射创建

时间:2015-04-14 12:04:31

标签: c# reflection nullable

给定一个Nullable<>的类型参数,如何创建具有HasValue = false的那种类型的实例?

换句话说,填写此代码:

public static Nullable<T> Create<T>() where T : struct 
{
    //Instantatie a Nullable<T> with reflection whose HasValue = false, and return it
}

2 个答案:

答案 0 :(得分:3)

return default(Nullable<T>) 

就够了。

甚至

return null;

甚至

return new Nullable<T>();

可空值类型具有new Nullable<T>() == null

的悖论

答案 1 :(得分:2)

在这种情况下不需要反思。

public static Nullable<T> Create<T>() where T : struct 
{
    return new Nullable<T>(); // or default(Nullable<T>) 
}

实例:http://rextester.com/CHRRM73303