Это множественное наследование?или другой синтаксис для Наследует / Реализует как C #? - PullRequest
1 голос
/ 02 августа 2011

Я пытаюсь понять, почему это работает

Public Interface IFullService
    Inherits ISerializableObjectLayerService, IVersionService
    <OperationContract()>
    Function StartTrac() As OperationResult(Of Boolean)
    <OperationContract()>
    Function StopTrac() As OperationResult(Of Boolean)
    <OperationContract()>
    Function IsTracRunning() As OperationResult(Of Boolean)
End Interface

Интерфейс не позволяет вам указать, что он «реализует» другой интерфейс, однако в моем случае мне нужно было заявить, что у меня есть оба интерфейса, просто я вставил запятую и вошел в другой интерфейс, построил и запустил мои юнит-тесты и все работает ...

Ранее я пытался следовать одному дереву наследования, например

<ServiceContract()>
Public Interface IFullService
    Inherits IVersionService
    <OperationContract()>
    Function StartTrac() As OperationResult(Of Boolean)
    <OperationContract()>
    Function StopTrac() As OperationResult(Of Boolean)
    <OperationContract()>
    Function IsTracRunning() As OperationResult(Of Boolean)
End Interface

<ServiceContract()>
Public Interface IVersionService
    Inherits ISerializableObjectLayerService
    <OperationContract()>
    Function GetVersionsSince(ByVal VersionNumber As Long, IncludeBetas As Boolean) As OperationResult(Of Core.Setting.MemoryBmsReleaseInfo())
End Interface

Как вы можете видеть здесь, IFullService наследует IVersionService, который затем наследует IVersionService. Однако в моем случае мне нужен был способ для реализации IVersionService без реализации ISerializableObjectLayerService, что привело меня к моему «рабочему» решению.

К сожалению, я не могу понять, как выяснить, что именно это делает. У меня поиск через stackoverflow, google, msdn, и я не могу найти пример с Inherits,

Не могли бы некоторые гуру предоставить некоторую информацию о том, что именно это делает (было бы здорово, если бы вы могли предоставить ссылку MSDN), поскольку мне не нравится делать что-то, чего я не понимаю (так как это может привести к проблеме). в будущем, что вы можете работать: D)

Надеюсь, этот вопрос не слишком дурацкий: D

Ответы [ 2 ]

2 голосов
/ 02 августа 2011

Документы Microsoft упоминают об этом:

http://msdn.microsoft.com/en-us/library/ms173156.aspx

Сам интерфейс может наследоваться от нескольких интерфейсов.

Редактировать: Другая ссылка (Все VB, с примером), для раннего выпуска Visual Studio, но информация по-прежнему применима.

http://msdn.microsoft.com/en-us/library/aa711871%28v=vs.71%29.aspx

1 голос
/ 02 августа 2011

Да, это множественное наследование .

... интерфейсов.

Это означает, что any IFullService IS A (n) IVersionService .(Когда вы видите, что «любой A также является B», это означает, что «A наследует от B».)

У наследования интерфейса нет таких проблем, как множественное наследование, поэтому MI разрешен.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...