Я хочу реализовать класс очереди приоритетов. Когда элемент добавляется с более высоким приоритетом, он помещается в очередь перед очередью, а затем добавляет в конец очереди.
Простые несколько строк кода
Public Class PriorityQueue(Of T)
Inherits List(Of T)
Private _list As New List(Of T)
Public Sub Enque(ByVal item As T, Optional ByVal pushToFront As Boolean = False)
If pushToFront = True Then
_list.Insert(0, item)
Else
_list.Add(item)
End If
End Sub
Public Function Deque() As T
If _list.Count <> 0 Then
Dim item As T = _list(0)
_list.RemoveAt(0)
Return item
Else
Throw New InvalidOperationException
End If
End Function
End Class
Теперь вызывающая функция пытается найти элементы в очереди таким образом ....
dim _q as new PriorityQueue(Of integer)
_q.Enque(1)
_q.Enque(2)
msgbox(_q.Count())
.....
программа выводит 0! Если добавить свойство Count(), все будет хорошо. Я бы подумал, что унаследованный класс должен вызвать функцию подсчета базового класса. Обратите внимание, что граф отображается в intellisense, даже если у меня нет реализации в производном классе.