在VB.NET中,如何告诉构造函数当前对象init失败

Bil*_*ill 1 vb.net

我有一个带构造函数的自定义类,该类被设置为在某些条件下合法地无法初始化.我什么都不退货?

Ry-*_*Ry- 6

你不能从构造函数返回任何东西,它在那里进行初始化.

根据具体情况,您可以做几件事:

  1. 如果初始化失败是一种特殊情况,则抛出异常并使用Try块捕获它:

    Public Sub New()
        '... fail to initialize
        Throw New ApplicationException("Some problem") 'Or whatever type of exception is appropriate
    End Sub
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果它失败很多并且您无法过滤输入或任何内容,请PrivateShared方法中构造构造函数并构造:

    Public Shared Function CreateMyObject()
        If someFailure Then
            Return Nothing
        End If
    
        Return New MyObject() 'Or something
    End Function
    
    Run Code Online (Sandbox Code Playgroud)