none
关于接口,与类型的问题 RRS feed

  • 问题

  • Public Interface IA
        Function getString()
    End Interface
    定义了一个接口
    Public Class AFactory
        Public Shared Function QueryInterface(ByVal a As String) As Object
            a = a.ToLower().Trim()
            Select Case a
                Case "ia"
                    Return CType(New CA(), IA)
            End Select
            Return Nothing
        End Function
    End Class
    定义了工厂类,用来返回指定接口

    Partial Class CA
        Implements IA

        Public Function getString() As Object Implements TestInterface.IA.getString
            Return "asdfdsaf"
        End Function
    End Class
    定义一个类实现定义的接口,不希望外面直接使用该类

     Dim a As IA = CType(AFactory.QueryInterface("IA"), IA)
     If (a Is Nothing) Then
         Response.Write("获取接口失败")
    End If
    Response.Write(a.getString())
    请求指定的接口类。
    但是出错。

    编译错误

    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

    编译器错误信息: BC30002: 未定义类型“IA”。

    源错误:


    行 5:  
    行 6: Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    行 7: Dim a As IA = CType(AFactory.QueryInterface("IA"), IA)
    行 8: If (a Is Nothing) Then
    行 9: Response.Write("获取接口失败")

    2008年8月14日 1:32

答案