非泛型函数,用于获取system.type的默认值

时间:2014-07-02 23:09:57

标签: vb.net

我只会在运行时知道类型。

Public Shared Function DefaultValue(Type As System.Type) As Object
  '???
End Function

任何人都可以填写这个功能吗?谢谢!

编辑: 在回答和更多讨论之后,我了解到你可以做到:

MyExpression = Nothing

确定表达式是否包含其类型的默认值。在我的库中使用共享功能可能会帮助我记住关于语言的这一点,但除此之外不需要该功能。感谢Dave指出这一点。

1 个答案:

答案 0 :(得分:1)

我认为有一种非常简单的方法可以解决这个问题:如果类型不是值类型,则不返回任何内容,否则返回该类型的新实例,该实例将初始化为默认值:

Public Shared Function DefaultValue(Type As System.Type) As Object
    If Not Type.IsValueType Then
        Return Nothing
    Else
        Return Activator.CreateInstance(Type)
    End If
End Function