У меня этот интерфейс:Реализация интерфейса с более общими методами
Public Interface IDocumentSavingEventArgs
Inherits IDocumentCancelEventArgs
Property SuggestedDocName As String
Property SuppressSaveDialog As Boolean
End Interface
, который, как показано, наследует от более общего интерфейса IDocumentCancelEventArgs
.
Тогда у меня есть этот интерфейс:
Public Interface IDocumentSavingHandlerProvider
Inherits IProvider
Sub DocumentSavingHandler(sender As Object, e As IDocumentSavingEventArgs)
End Interface
Для старых целей совместимости pulgins, мне нужно реализовать последний интерфейс также используя e
типа IDocumentCancelEventArgs
:
Public Sub MySavingHandler(sender As Object, e As IDocumentCancelEventArgs)
Implements IDocumentSavingHandlerProvider.DocumentSavingHandler
Этот кажется невозможным, поскольку компилятор предупреждает меня, что нет метода DocumentSavingHandler
с этим сигналом е. Во время выполнения это не должно быть проблемой, на мой взгляд, поскольку MySavingHandler
принимает IDocumentSavingEventArgs
точно, так как это тип IDocumentCancelEventArgs
.
Есть ли способ достичь этого?
По-моему, вы можете передать 'IDocumentSavingEventArgs' функцию, получающую' IDocumentCancelEventArgs', а не наоборот, как вы писали. – Teejay
Исправлено, извините за это. – alstonp
Благодарим вас за ответ. К сожалению, способ перегрузки (который кажется лучшим) подразумевает, что я должен изменить все плагины, которые реализуют интерфейс IDocumentSavingHandlerProvider. Кстати, это, кажется, единственный способ. Награда за награду. – Teejay