優先度キュークラスを実装したいと思います。アイテムがより高い優先度で追加されると、アイテムはキューの最後に追加されるのではなく、キューの前面にプッシュされます。 リスト(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関数を呼び出すべきだと考えました。 派生クラスに実装がない場合でも、カウントはIntelliSenseで表示されることに注意してください。
"dim _qを新しいPriorityQueue(Of整数)_q.Enque(1)_q.Enque(2)msgbox(_q.Count())"としてマークしてください。 –