Jon*_*eet 19
您可以轻松获得的最接近的(不会受到GC移动对象等影响)可能是RuntimeHelpers.GetHashCode(Object).这给出了哈希码将通过调用返回Object.GetHashCode()的对象非虚拟.但这仍然不是唯一的标识符.它可能足以用于诊断目的,但您不应该依赖它进行生产比较.
编辑:如果这只是用于诊断,你可以添加一种"规范化ID生成器",这只是List<object>...当你要求一个对象的"ID"时,你要检查它是否已经存在于列表中(通过比较引用)然后将它添加到最后,如果它没有.ID将是列表中的索引.当然,在不引入内存泄漏的情况下执行此操作会涉及弱引用等,但作为一个简单的hack,这可能对您有用.