9

什么是反射等价物:

default(object);  //null

当我在运行时之前没有类型时,例如

public void Method(Type type)
{
   var instance = type.CreateDefault(); //no such method exists, but I expect there is a way of doing this?
} 
4

1 回答 1

17

对于任何引用类型,默认值为空实例。对于任何值类型,都可以通过 获取默认值Activator.CreateInstance。但是当你有一个名为的变量instance表明你想要一个实际的实例而不是空引用时......所以虽然你可以这样做:

public object GetDefaultValue(Type type)
{
    return type.IsValueType ? Activator.CreateInstance(type) : null;
} 

...目前还不清楚这有多大用处。是该类型的默认,与该类型的默认实例不同。

于 2012-04-27T13:20:13.993 回答