对于任何给定的类型,我想知道其默认值。
在C#中,有一个名为default的关键字来完成此操作
object obj = default(Decimal);
但是我有一个Type实例(称为myType),如果我这样说,
object obj = default(myType);
它不起作用
有什么好办法吗?我知道一个巨大的开关块将起作用,但这不是一个好选择。
实际上只有两种可能:null引用类型和new myType()值类型(对于int,float等,它对应于0)因此,您实际上只需要考虑以下两种情况:
null
new myType()
object GetDefaultValue(Type t) { if (t.IsValueType) return Activator.CreateInstance(t); return null; }
(由于值类型始终具有默认构造函数,因此对Activator.CreateInstance的调用将永远不会失败)。