我需要所有TableAdapters
来实现自定义界面。问题是接口定义的某些成员驻留在DataSet的设计器文件中,我不想(并且不应该)更改,因为该代码将自动重新生成。出于同样的原因,我无法将这些成员重新定位到我的代码文件中。我的出路是什么?
答案 0 :(得分:3)
当您实施界面时,您声明的成员不必具有与界面成员相同的名称,并且他们不必公开。让我们说你有这个设计师生成的类:
Partial Public Class SomeClass
Public Sub FirstMethod()
Console.WriteLine("FirstMethod")
End Sub
Public Sub SecondMethod()
Console.WriteLine("SecondMethod")
End Sub
End Class
并且您希望它实现此接口:
Public Interface ISomeInterface
Sub FirstMethod()
Sub ThirdMethod()
End Interface
请注意,该接口有一个名为FirstMethod
的方法,但SomeClass
已有一个名为FirstMethod
的方法。您可以添加自己的部分类来实现这样的接口:
Partial Public Class SomeClass
Implements ISomeInterface
Private Sub FirstMethodInternal() Implements ISomeInterface.FirstMethod
Me.FirstMethod()
End Sub
Public Sub ThirdMethod() Implements ISomeInterface.ThirdMethod
Console.WriteLine("ThirdMethod")
End Sub
End Class
实现ISomeInterface.FirstMethod
的方法未命名为FirstMethod
,因此它不会与使用该名称的现有方法发生冲突,而且它也是Private
,因此无法从在外部使用SomeClass
类型的引用。使用ISomeInterface
类型的引用是另一回事。如果你使用这样的代码:
Dim sc As ISomeInterface = New SomeClass
sc.FirstMethod()
sc.ThirdMethod()
您将发现调用FirstMethodInternal
对象的SomeClass
方法,然后调用同一对象的FirstMethod
方法。尝试运行该代码并在FirstMethod
和FirstMethodInternal
方法上放置断点以向您自己证明。