我有以下代碼編譯沒有問題。當然,執行Dim C As IDoThingsC = GetThing_C()
時會出現無效的轉換異常。我錯過了什麼嗎?你會想要返回一個不符合函數返回值接口要求的對象嗎?爲什麼接口不是強類型的?
Public Class ClassA
Public Sub DoThings_A()
Debug.Print("Doing A things...")
End Sub
End Class
Public Class ClassB
Implements IDoThingsC
Public Sub DoThings_B()
Debug.Print("Doing B things...")
End Sub
Public Sub DoThings_C() Implements IDoThingsC.DoThings_C
Debug.Print("Doing C things...")
End Sub
End Class
Public Interface IDoThingsC
Sub DoThings_C()
End Interface
Public Class aTest
Public Sub Test()
Dim C As IDoThingsC = GetThing_C()
C.DoThings_C()
End Sub
Public Function GetThing_C() As IDoThingsC
Dim Thing As ClassA = New ClassA
Thing.DoThings_A()
Return Thing
End Function
End Class
我看不出它如何被編譯?我錯過了什麼嗎? – 2010-01-08 19:18:45
這真的*編譯沒有問題嗎?我認爲「GetThing_C」不會被編譯,因爲它試圖將ClassA實例作爲IDoThingsC接口返回,而它並未實現。 – 2010-01-08 19:20:20
這就是我的想法。它在Visual Studio 2005和Visual Studio 2010 Beta 2中編譯。 – JRS 2010-01-08 19:33:01