簡體   English   中英

C# 嵌套私有類

[英]C# nested private classes

我正在創建自己的優先級隊列。 它不是典型的優先級隊列,因為項目是以給定的優先級插入的。 相反,可以將項目添加到隊列中,並且它們從最高優先級開始(假設我們有 5 個隊列,隊列 1=最高優先級,隊列 5=最低)),因此最初將項目添加到隊列 1。

這個數據結構的用戶可以得到 next() 元素,它根據我感興趣的一些因素,即優先級返回一個元素,但它並沒有從整個數據結構中出隊。 用戶對從先前調用 next() 返回的項目的有效性提供一些反饋(例如,通過/失敗結果),並且基於此,項目的優先級向上或向下移動。 基本上,失敗的元素很少被使用,我有最終刪除經常失敗的元素的機制。

1)有什么改進界面的建議嗎? 我不喜歡從 next() 調用中檢索元素,然后通過另一個 function 調用提供反饋。 state 出錯的地方太多了。 (即用戶在獲取下一個元素之前不報告結果......等等......)。 此外,最好允許這是線程安全的。

2)我正在使用私有嵌套 class 包裝我感興趣的元素以及與每個元素關聯的一些屬性以跟蹤元素的統計信息(例如通過/失敗計數等......),並想知道是否有是一種從內部 class 訪問外部 class 成員的方法嗎?

不確定我是否完全理解這個問題,但是 next() 不等待返回的反饋有什么問題? 該結構的用戶將 next() 元素從隊列中拉出,然后在准備好后在該元素上 submitFeedback()。 同時,其他用戶也可以異步拉出 next() 元素。 隊列在呼叫進入時對其進行處理。如果這沒有幫助,您能否更詳細地解釋處理 state 的問題?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM