【发布时间】:2012-10-26 05:01:43
【问题描述】:
我正在尝试调试多线程代码的一些奇怪行为,我需要一些方法来可靠地跟踪对象身份。在 C++ 中,我只需获取对象地址并将它们转换为字符串,这样我就可以知道这两个地址是否属于同一个对象。
在 C# 中看起来像 a reference is a full equivalent 的 C++ 对象地址。
我可以将引用转换为字符串地址表示形式吗?
【问题讨论】:
-
ReferenceEquals有什么问题?如果是跨时间比较,那当然是行不通的,因为 .NET 对象会因 GC 而移动。 -
@Damien_The_Unbeliever:这将需要一些内部对象列表和内部比较。我宁愿只查看日志并从中得出结论。
-
那么,这是跨时间的比较吗?
-
使用unsafe关键字。
-
@Damien_The_Unbeliever:我只需要在日志中有地址就可以方便地编写大量额外代码来维护列表并查找哪个对象是哪个对象。我需要一些 C++
printf("%p")的直接等价物。