0

我正在尝试编写一个有趣的技巧,我相信我曾经在 Java 程序中看到过,并且可能在一些 C# 代码中看到过。

我有一个静态方法,它将 ID 作为整数,在表中查找,然后使用该行中的信息创建并返回该类的实例。问题是,我想让某个构造函数只对我的静态函数可见,而不是对任何人可见。我查看了各种保护级别的修改,但似乎找不到任何可以完成此任务的修改。有谁知道我如何实现这一目标?

4

2 回答 2

2

为什么不将构造函数设为私有?

Public Class Foo
    Private Sub New ()
    End Sub

    Public Shared Function CreateFoo (bar As Integer) As Foo
        Return New Foo ()
    End Sub
End Class
于 2012-11-22T09:10:01.760 回答
1

这将是对此的“快速修复”,但绝不是您正在寻找的。

使用您需要的构造函数创建一个继承的类,然后以其基本格式返回该类。只要您使用 Derp,这将使构造函数至少“隐形”

Public Class Herp
  Inherits Derp
    Public Sub New(ByVal Secret As String)
        _Secret = Secret
    End Sub
End Class

Public Class Derp
   Protected _Secret As String
   Public Sub New()

   End Sub
End Class

然后这样做:

Public Shared Function GetDerp() As Derp
   Dim derp As Derp = New Herp("Secret")
   Return Derp
End Function
于 2012-11-22T07:59:56.117 回答