我正在尝试编写一个有趣的技巧,我相信我曾经在Java程序中看到过,可能还有一些C#代码。
我有一个静态方法,它将ID作为整数,在表中查找,然后使用该行中的信息来创建并返回该类的实例。问题是,我想让某个构造函数只对我的静态函数可见,而不仅仅是任何人。我已经查看了各种级别保护的修改,但似乎找不到可能完成此任务的任何修改。有没有人有任何想法我怎么可能实现这个?
答案 0 :(得分: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
答案 1 :(得分: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