如何区分两个不同但相同的对象

时间:2014-02-05 07:29:06

标签: c# object pointers reflection

我处于需要跟踪对象的所有变量的情况,因此我需要一种方法

所以我需要一种方法来获得表示对象的唯一id(字符串或int,无所谓)。

string obj1 = "test";
string obj2 = "test";

在此示例中,obj1.id必须与obj2.id不同。所以obj.GetHashCode()不是我要找的......

我正在考虑将指针用作这样的标识符:

GCHandle handle = GCHandle.Alloc(obj1 , GCHandleType.WeakTrackResurrection);
int obj1Id = GCHandle.ToIntPtr(handle).ToInt32();

但我不知道这是不是一个好主意,也许它可以改变,如果它在内存中移动(不知道是否会发生这种情况)。我的直觉告诉我这不是一个好的解决方案......或者这样做是否合适和安全?

或者是否有其他方法可以获得唯一标识符?

0 个答案:

没有答案