我正在創建我自己的排序優先級隊列。這不是一個典型的優先級隊列,因爲項目是以給定優先級插入的。相反,項目可以添加到隊列中,並且它們從最高優先級開始(假設我們有5個隊列,隊列1 =最高優先級,隊列5 =最低)),因此該項目最初被添加到隊列1。C#嵌套私有類
此數據結構的用戶可以獲取next()元素,該元素根據我感興趣的某些因素(即優先級)返回元素,但不會從整個數據結構中出列。用戶對前一次調用next()返回的項目的有效性(例如,通過/失敗結果)提供一些反饋,並基於該反饋優先向上或向下移動項目。基本上,失敗的元素使用得較少,而且我有機制最終移除失敗次數過多的元素。
1)任何改善界面的建議?我不喜歡從next()調用中檢索元素,然後通過另一個函數調用提供反饋。狀態混亂的地方有太多的錯誤空間。 (即用戶在獲取下一個元素之前不報告結果..等等)。此外,它是可取的讓這是線程安全的。
2)我正在使用一個私有嵌套類來包裝我感興趣的元素以及與每個元素相關的一些屬性以跟蹤元素的統計信息(例如通過/失敗計數等),並且希望瞭解是否有辦法從內部階層進入外部班級成員?
嵌套類可以訪問外部類的私有成員,只要它具有對類實例的引用即可。 – BrokenGlass
哦,很酷,希望有一種方法,而不是將對象的引用傳遞給所有內部類實例。 – user623879