Вот моя отправная точка: SortedDictionary с пользовательским Comparer:
Dim dict As SortedDictionary(Of Long, Object) = New SortedDictionary(Of Long, Object)(New CustomComparer())
Чтобы реализовать дополнительные функции, мне нужно расширить словарь, чтобы у меня было следующее:
Public Class CustomDict
Inherits SortedDictionary(Of Long, Object)
End Class
Dim dict As CustomDict = New CustomDict
Все хорошо до этого момента. Теперь мне просто нужно добавить свой собственный компаратор:
Dim dict As CustomDict = New CustomDict()(New CustomComparer())
Но компилятор считает, что я пытаюсь создать двумерный массив.
В результате, если я использую класс, который расширяет SortedDictionary, я получаю ошибки компилятора при использовании пользовательского компаратора, потому что он думает, что я пытаюсь создать массив. Я ожидаю, что он распознает код как экземпляр класса, который наследует SortedDictionary, и использует для этого пользовательский компаратор.
Подводя итог, это составляет:
Dim dict As SortedDictionary(Of Long, Object) = New SortedDictionary(Of Long, Object)(New CustomComparer())
в то время как это приводит к ошибкам компилятора, связанным с двумерными массивами:
Public Class CustomDict
Inherits SortedDictionary(Of Long, Object)
End Class
Dim dict As CustomDict = New CustomDict()(New CustomComparer())
Мой синтаксис неверен? Или есть настройка Visual Studio (2017 Professional), чтобы уточнить для компилятора, каково мое намерение? Любая помощь будет оценена.