请查看以下功能:
Public Function Test(ByVal i As Integer) As Animal
If i = 1 Then
Return New Dog
Else
Return New Cat
End If
End Function
函数返回一只狗或一只猫,具体取决于整数值是否为1。如果狗和猫是静态课程,这是如何接近的?即,您无法创建静态类的实例。我今天下午在MSDN网站上看了几个关于静态课程的网页,但我没有找到我的具体问题的答案。
答案 0 :(得分:0)
如果Dog和Cat是静态课程,这是怎么回事?
事实并非如此。你不能“返回一个静态类” - 你需要总是返回一个对象。您可以在类上使用静态/共享方法来生成或操作对象。例如,如果您在类型上有工厂创建方法,则可以执行以下操作:
Public Function Test(ByVal i As Integer) As Animal
If i = 1 Then
Return Dog.Create(i)
Else
Return Cat.Create(i)
End If
End Function
答案 1 :(得分:0)
术语“静态类”是一个C#概念,它在VB.NET中不存在。所以,不,这是不可能的。
在C#中也不可能,静态类只能从Object派生。与静态类最接近的VB.NET是Module。非常不合适。
您当然可以返回类的静态实例。如果要在类中声明它,请在模块中声明变量或使用Shared关键字。
Class Example
Private Shared theDog As Dog
Private Shared theCat As Cat
Public Shared Function Test(ByVal i As Integer) As Animal
If i = 1 Then Return theDog Else Return theCat
End Function
End Class