Возможный дубликат:
Значение по умолчанию типаВ C#, для получения значения по умолчанию Типа я могу записать...
var DefaultValue = default(bool);`
Но, как получить то же значение по умолчанию для предоставленной Переменной типа?.
public object GetDefaultValue(Type ObjectType) { return Type.GetDefaultValue(); // This is what I need }
Или, другими словами, какова реализация ключевого слова "по умолчанию"?
Я думаю, что функция Фредерика на самом деле должна выглядеть так:
public object GetDefaultValue(Type t)
{
if (t.IsValueType)
{
return Activator.CreateInstance(t);
}
else
{
return null;
}
}
Вероятно, вам следует исключить Nullable
case также, чтобы сократить несколько циклов ЦП:
public object GetDefaultValue(Type t) {
if (t.IsValueType && Nullable.GetUnderlyingType(t) == null) {
return Activator.CreateInstance(t);
} else {
return null;
}
}