我想实现优先级队列类。当一个项目以更高的优先级被添加时,它被推到队列的前面,而不是添加到队列的末尾。代码从列表(T)继承的问题类
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()属性,那么一切都很好。 我原以为继承的类应该调用基类的Count函数。 请注意,即使我在派生类中没有实现,Count也会显示在intellisense中。
请标记为代码:“dim _q as new PriorityQueue(Of integer)_q.Enque(1)_q.Enque(2)msgbox(_q.Count())” – 2009-04-27 18:29:38