我有一個接口ITest
,方法爲GetResult()
。我有一個類Test實現ITest,從而定義私有方法GetResult()。在VB.NET中使用System.Object類型變量調用接口方法
接下來,我在另一個類中創建一個Test實例。代碼如下:
Module NewClass
Public Sub New()
Dim i As ITest = New Test()
Dim o As Object
o = i
Dim b As Boolean = o.GetResult() 'This line raises "MissingMemberException" Public member 'Certify' on type 'Class1' not found. '
End Sub
End Module
我必須Object o
引用這個,因爲我有其他代碼遵循依賴鄰。請幫助
編輯:
這裏是調用模塊中的代碼
接口:
Public Interface ITest
Function GetResult() As Boolean
End Interface
Class Test
Implements ITest
Private Function ITest_GetResult() As Boolean Implements ITest.GetResult
Dim result As Boolean
......
......
Return result
End Function
End Class
編輯2:
感謝您的即時回覆。
@Vlad - 我將現有的代碼從VB 6遷移到VB.NET,因此我不應該更改GetResult的訪問修飾符。將它私有會拋出InvalidCastException無法投入類型'System.Object'的對象來鍵入'ITest'
@Dan - 對象類型變量o在很多地方使用,因此我不想改變它。是的,Test以不同的名稱實現了ITest.GetMember。
能否請您提供代碼您的GetResult()方法在ITest界面中如何聲明?我對它的結果類型更感興趣。 – 2011-01-06 14:36:13