繁体   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