我知道“default”关键字返回静态确定类型的默认值,例如this question中所示。
但是,给定一个类型的实例,是否有一种简单的方法可以动态地获取该类型的默认值?
我在谷歌搜索时发现的唯一方法是this:
static object DefaultValue(Type myType)
{
if (!myType.IsValueType)
return null;
else
return Activator.CreateInstance(myType);
}
但我想尽可能避免使用Activator类。
最佳答案
这可能是您最好的路线。
我不用担心在这里使用Activator类。这是一个非常标准的类,由编译器依赖。例如此VB代码
Public Sub Example(Of T as New)()
Dim x = new T()
End Sub
大致翻译成这段代码
Public Sub Example(Of T As New)()
Dim x = Activator.CreateInstance(OF T)
ENd Sub
关于c# - 如何以非泛型方式获取类型的默认值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/520290/