クラスを作っていて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>-- リフレクションを使用してソートするサブクラス。詳細はこの質問にとって重要ではありません。