编辑:
好的,让我试着解释一下:
我想管理来自外部源的点数据数组 一个数据类,我在这里存储这个数组:
public Data(int [,] point)
{
SomeBlockingCollection.Add(point);
}
这里没问题。 现在让我们假设这个点有三个整数值:x,y,temp,所以如果你查看数组它会是这样的:
point[0,0] = 2; //This is P1
point[0,1] = 8;
point[0,2] = 10;
point[1,0] = 30; //This is P2
point[1,1] = 5;
point[1,2] = 20;
等等......
现在我想要存储在我的Data对象中的是对这些点的引用。 从我的外部来源,将有另一个数组,它应该存储指向我的点数组的指针。
所以我有一个看起来像这样的课:
public Data(int [,] point, int[][] pointers)
{
SomeBlockingCollection.Add(point);
}
如果您查看指针数组,它看起来就像那样(抱歉,我不知道如何正确地执行语法):
pointers[0] = [P1,P2,Pn];
pointers[1] = [P2,Pn,P1};
所以基本上我想从外面存储我的数据对象中的东西:
答案 0 :(得分:1)
如果我每次想要为NewArray指定一个新点时都能正确理解,那么就创建一个Point Class的新实例。不要这样做!
而是这样做:
NewArray[m] = Points[n]
答案 1 :(得分:1)
如果我的问题正确,那么你真的想知道数组中的对象是否是相同的对象。如果你有类并且只使用引用,那么它们将是,例如
var array1 = new Point[] { new Point(...), new Point(...), new Point(...) };
var array2 = new Point[2];
array2[0] = array1[2];
在这种情况下,内存中仍有3个点,其中一个引用了两次。
如果我遵循您的要求,那么您将:
e.g。
public class MyData
{
Point[] m_Points;
public MyData(Point[] points)
{
m_Points = points;
}
}