我有一个接口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