【发布时间】:2011-12-14 13:59:48
【问题描述】:
我有一个在 Azure 上运行的 C# 代码,并且支持 Web,因此它应该是安全的。这意味着我不能使用指针。
我遇到了这个问题 - 我的数据结构是一个 SortedList,其中每个节点都是对象 X。每个对象 X 包含一个数组,其中每个单元格是对象 Y 的另一个 SortedList。类型 X 和 Y 的对象具有不同的 ID(所以它们当然是可搜索的)。
现在,我需要一种直接访问 Y 对象的方法,而无需通过 X 对象和 Y 对象对其进行搜索。 (可能是数百万的对象)
在 C/C++ 中,我会使用带有指向实际对象的指针的 Y 对象 ID 列表。这样我只搜索一次对象。
有什么想法可以在 C# 中实现吗?
谢谢!
【问题讨论】:
-
C# 中没有指针的原因是几乎所有东西都是指针。如果你说
MyClass p = a[i];,p就是一个指针。a是一个指针数组,a[i]和p都指向同一个对象。你不能做的是指针算法。 -
哦...所以我可以有一个指针列表。只需将它们声明为对象(不初始化它们)?
-
谢谢。看来我的对象有资格成为引用类型,即 - 一种指针:)
-
如果你模拟指针,你也会模拟相关的问题。指针本质上是一种间接方式。除非您采取额外的步骤(检查每个间接引用,如果它仍然有效),否则它无法引导您到任何地方。换句话说:模拟指针并没有比简单地使用它们带来任何基本的安全优势。
标签: c# c data-structures pointers