我处于需要跟踪对象的所有变量的情况,因此我需要一种方法
所以我需要一种方法来获得表示对象的唯一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();
但我不知道这是不是一个好主意,也许它可以改变,如果它在内存中移动(不知道是否会发生这种情况)。我的直觉告诉我这不是一个好的解决方案......或者这样做是否合适和安全?
或者是否有其他方法可以获得唯一标识符?