问题
Possible Duplicate:
Default value of a type
In C#, to get the default value of a Type, i can write...
var DefaultValue = default(bool);`
But, how to get the same default value for a supplied Type variable?.
public object GetDefaultValue(Type ObjectType)
{
return Type.GetDefaultValue(); // This is what I need
}
Or, in other words, what is the implementation of the "default" keyword?
回答1:
I think that Frederik's function should in fact look like this:
public object GetDefaultValue(Type t)
{
if (t.IsValueType)
{
return Activator.CreateInstance(t);
}
else
{
return null;
}
}
回答2:
You should probably exclude the Nullable<T> case too, to reduce a few CPU cycles:
public object GetDefaultValue(Type t) {
if (t.IsValueType && Nullable.GetUnderlyingType(t) == null) {
return Activator.CreateInstance(t);
} else {
return null;
}
}
来源:https://stackoverflow.com/questions/2686678/in-net-at-runtime-how-to-get-the-default-value-of-a-type-from-a-type-object