1

请看下面的函数:

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 返回狗或猫。如果 Dog 和 Cat 是静态类,如何处理?即你不能创建一个静态类的实例。我今天下午在 MSDN 网站上阅读了一些关于静态类的网页,但我还没有找到具体问题的答案。

4

2 回答 2

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
于 2013-01-14T19:58:59.100 回答
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
于 2013-01-14T20:03:15.573 回答