使用& # 39;默认# 39;在'Object'类型的实例上使用关键字
本文关键字:关键字 实例 类型 默认 使用 Object | 更新日期: 2023-09-27 18:15:16
当提供一个整数(或其他值类型)作为object
装箱时,我很确定没有办法使用default()
(返回给定类型的默认值)直接返回底层的装箱默认值,这是正确的吗?
我宁愿在一个操作中调用object
,而不必像下面这样写一堆条件:
public object GetDefaultVal(object obj){
if(obj is Guid){
return default(Guid);
}
if(obj is double){
return default(double);
}
....
}
假设您不能将方法更改为泛型,您可以使用所有值类型提供无参数构造函数的事实,因此您可以调用Activator.CreateInstance
:
public object GetDefaultValue(object obj)
{
Type type = obj.GetType();
return type.IsValueType ? Activator.CreateInstance(type) : null;
}
(所有引用类型的默认值都是null)