私は自分のプライオリティキューを作成しています。アイテムが所定の優先順位で挿入されている点では、一般的な優先キューではありません。むしろ、キューにアイテムを追加して優先度を高くすることができます(キューが5つあり、キュー1 =最高優先度、キュー5 =最低)。そのため、項目は最初はキュー1に追加されます。C#ネストされたプライベートクラス
このデータ構造のユーザーはnext()要素を取得できます。この要素は、私が興味を持っているいくつかの要素、つまり優先度に基づいて要素を返しますが、データ構造全体からデキューされません。ユーザは、next()への前回の呼び出しから返された項目の有効性にいくらかのフィードバックを提供し(例えば合格/不合格の結果)、それに基づいて項目を優先的に上または下に移動させます。基本的に、失敗する要素はあまり使われなくなり、あまりにも頻繁に失敗する要素を最終的に削除する仕組みがあります。
1)インターフェイスを改善するための提案はありますか?私はnext()呼び出しから要素を取得し、別の関数呼び出しでフィードバックを提供する必要はありません。国家が台無しになるほどの余裕があります。 (つまり、ユーザーが次の要素を取得する前に結果を報告しないなど...)。また、これをスレッドセーフにすることが望ましいでしょう。
2)興味のある要素をラップするプライベートネストされたクラスを使用しています。各要素に関連付けられているいくつかの属性(たとえば、合格/不合格数など)を追跡したい内部クラスから外部クラスメンバーにアクセスする方法があるかどうかを知るためには?
ネストされたクラスは、クラスインスタンスへの参照を持っていれば、外部クラスのプライベートメンバーにアクセスできます。 – BrokenGlass
オハイオ州クール、すべての内部クラスのインスタンスにオブジェクトへの参照を渡さずに方法があることを望んでいた。 – user623879