使用反射的等效默认值(T)

时间:2010-12-30 09:20:38

标签: c# reflection default-value

  

可能重复:
  C# - Programmatic equivalent of default(Type)

我可以使用Type类(或其他地方)中的方法或属性来查找default(T)的值吗?

2 个答案:

答案 0 :(得分:4)

只需查看type.IsValueType;如果是真的,请使用Activator.CreateInstance(type) - 否则为空。

你也可以在PropertyInfo或FieldInfo上将null传递给SetValue,它也适用于甚至for int,float等的值类型。

答案 1 :(得分:2)

object obj = type.IsValueType ? Activator.CreateInstance(type) : null;