クラスを作っていてPriorityQueue<T>
、今はList<T>
バッキングストアとして使っています。私が得ているエラーは次のとおりです。
正しいサフィックスを持っている/間違ったサフィックスを持っていない
露出しないList<T>
-Queue サフィックスの場合は継承する必要がありますQueue<T>
が、を並べQueue<T>
替えるには、キューを空にし、並べ替えてからキューを補充する必要があります。また、 から継承するQueue<T>
と、プライオリティ キューは FIFO コレクションではないため、LSP に違反します。
私が作成している PriorityQueues のタイプの 1 つはIComparer<T>
、要素を比較するために を使用していますがIComparer<T>
、配列 および でのみサポートされていますList<T>
。
この質問を見ましたが、私の質問とは完全には関係ありません。
ここに私の質問があります: これらのコード分析警告を抑制する必要がありますか? Queue<T>
効率が悪いとしても、クラスを継承して書き直して、それで動作するようにする必要がありますか? そうでない場合は、別のものに交換する必要List<T>
がありますか?
編集:これが違いを生むかどうかはわかりませんが、各クラスの設定は次のとおりです。
PriorityQueue<T>
-- 抽象基本クラス (Sort() は抽象)PriorityQueue<T, TComparer>
-- 並べ替えに比較子を使用するサブクラスReflectionPriorityQueue<T>
-- リフレクションを使用してソートするサブクラス。詳細はこの質問にとって重要ではありません。