【问题标题】:C# Outputting the reference of an ObjectC#输出对象的引用
【发布时间】:2010-11-07 03:06:42
【问题描述】:

我可以通过什么方式输出内存中对象的引用。 喜欢:

Console.WriteLine("内存位置的对象" + object.Reference);

提前谢谢,我需要这个来做一些调试。

【问题讨论】:

标签: c#


【解决方案1】:

您可能会经常看到 .NET 教程提到“指针”,并且有人在 cmets 中生气说应该讨论“引用”而不是“指针”。这就是为什么。这种区别通常是微不足道的,尤其是在教授更高层次的概念时,但在这种情况下,它是非常重要的。

实际的指针由 .NET 处理,.NET 经常更改对象在内存中的位置,从而更改/更新指针。你和我处理引用,当指针发生时我们的引用不需要更改,因为 .NET 为我们处理这个映射。因此,尽管总是涉及到指针,即使我们确实得到了指针所指向的内容,但这并不一定意味着您正在找出它将继续在哪里。

也就是说,你仍然可以使用下面的,但我认为它不会达到你想要的效果:

int* myIntPointer = &myInt;

【讨论】:

    【解决方案2】:

    对于托管对象,您不能这样做是有充分理由的。它可以在任何垃圾回收期间更改位置。

    【讨论】:

    • 如果您正在寻找一个对象标识,您可能可以使用 GetHashCode()
    • 固定位置不能更改。
    猜你喜欢
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 2021-10-04
    • 2014-08-18
    • 2021-11-19
    • 2015-11-13
    相关资源
    最近更新 更多