我正在创建我自己的排序优先级队列。这不是一个典型的优先级队列,因为项目是以给定优先级插入的。相反,项目可以添加到队列中,并且它们从最高优先级开始(假设我们有5个队列,队列1 =最高优先级,队列5 =最低)),因此该项目最初被添加到队列1。C#嵌套私有类
此数据结构的用户可以获取next()元素,该元素根据我感兴趣的某些因素(即优先级)返回元素,但不会从整个数据结构中出列。用户对前一次调用next()返回的项目的有效性(例如,通过/失败结果)提供一些反馈,并基于该反馈优先向上或向下移动项目。基本上,失败的元素使用得较少,而且我有机制最终移除失败次数过多的元素。
1)任何改善界面的建议?我不喜欢从next()调用中检索元素,然后通过另一个函数调用提供反馈。状态混乱的地方有太多的错误空间。 (即用户在获取下一个元素之前不报告结果..等等)。此外,它是可取的让这是线程安全的。
2)我正在使用一个私有嵌套类来包装我感兴趣的元素以及与每个元素相关的一些属性以跟踪元素的统计信息(例如通过/失败计数等),并且希望了解是否有办法从内部阶层进入外部班级成员?
嵌套类可以访问外部类的私有成员,只要它具有对类实例的引用即可。 – BrokenGlass
哦,很酷,希望有一种方法,而不是将对象的引用传递给所有内部类实例。 – user623879