通常我希望某些类C1的某些(或所有)函数只能从另一个类C2中访问,因为C2是一种代理,它拥有C1类型的对象(例如:类"神经元"的方法,如" connect()",只能从"Brain"访问.我认为与C#不同,这与继承不同,我们可以使用像"private"或"protected"这样的关键字来指定可见性.
在这种情况下,最佳做法是什么?
我在C#中实现A*(不用于寻路),我需要Dictionary来保存开放节点,因为我需要快速插入和快速查找.我想从Dictionary中获得第一个开放节点(它可以是任何随机节点).使用Dictionary.First()非常慢.如果我使用迭代器,则MoveNext()仍然占用程序整个CPU时间的15%.从Dictionary中获取任何随机元素的最快方法是什么?