Я хочу создать реализацию интерфейса IDictionary (Of TKey, TValue), чтобы обеспечить некоторую функциональность оболочки.
Public Class ExtendedDictionary(Of TKey, TValue)
Implements IDictionary(Of TKey, TValue)
Private _Dictionary As Dictionary(Of TKey, TValue)
Public Sub Add(ByVal key As TKey, ByVal value As T) Implements IDictionary(Of TKey, T).Add
'Impl Here'
End Sub
End Class
Когда я делаю это, он стонет о методах, которые я не реализовал. Когда я выбираю реализацию методов ICollection, добавляются ICollection, но затем я получаю целый набор ошибок. Некоторые из них жалуются на методы с одинаковыми подписями. Например:
Public ReadOnly Property IsReadOnly() As Boolean Implements ICollection(Of KeyValuePair(Of TKey, T)).IsReadOnly
Get
Return IsReadOnly
End Get
End Property
Так что эту ошибку, я думаю, довольно легко исправить. Просто измените имя метода, потому что мы сообщаем ему, какой метод он реализует, поэтому имя должно быть несущественным. Поэтому я изменяю это на что-то Lick CollectionIsReadOnly. Более сложные проблемы выглядят так:
ReadOnly Public Property Count() As Integer Implements ICollection(Of T).Count
Get
Return Count
End Get
End Property
Ошибка: интерфейс 'System.Collections.Generic.ICollection (Of T) не реализован этим классом. Я не уверен, что делать с этой ошибкой. Я даже не очень понимаю это. Я торгую, чтобы изменить (Of T) на (Of TValue), но это не помогло.