相关疑难解决方法(0)

.NET唯一对象标识符

有没有办法获取实例的唯一标识符?

GetHashCode()对于指向同一实例的两个引用是相同的.但是,两个不同的实例可以(很容易)获得相同的哈希码:

Hashtable hashCodesSeen = new Hashtable();
LinkedList<object> l = new LinkedList<object>();
int n = 0;
while (true)
{
    object o = new object();
    // Remember objects so that they don't get collected.
    // This does not make any difference though :(
    l.AddFirst(o);
    int hashCode = o.GetHashCode();
    n++;
    if (hashCodesSeen.ContainsKey(hashCode))
    {
        // Same hashCode seen twice for DIFFERENT objects (n is as low as 5322).
        Console.WriteLine("Hashcode seen twice: " + n + " (" + hashCode + ")");
        break; …
Run Code Online (Sandbox Code Playgroud)

c# unique hashcode gethashcode

113
推荐指数
7
解决办法
11万
查看次数

标签 统计

c# ×1

gethashcode ×1

hashcode ×1

unique ×1