我知道“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/

10-11 11:24