代码之家  ›  专栏  ›  技术社区  ›  daniel

输出对象的引用

c#
  •  0
  • daniel  · 技术社区  · 16 年前

    我怎样才能在内存中输出对象的引用呢? 像:

    console.writeline(“内存位置的对象”+object.reference);

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

    3 回复  |  直到 16 年前
        1
  •  4
  •   Shea    16 年前

    对于托管对象,您不能,而且有充分的理由。它可以在任何垃圾收集期间更改位置。

        2
  •  2
  •   Francis B.    16 年前

    引用不是内存位置。查看此日志: Fabulous Adventures In Coding

        3
  •  1
  •   Dinah SLaks    16 年前

    你经常会看到.NET教程提到“指针”,有人在评论中生气地说应该讨论“引用”而不是“指针”。这就是原因。这种区别通常是微不足道的,尤其是在教授更高的概念时,但在这种时候,它是非常不平凡的。

    实际指针由.NET处理,而.NET通常会更改对象在内存中的位置,从而更改/更新指针。您和我处理引用,当指针执行此操作时,我们的引用不需要更改,因为.NET为我们处理此映射。所以尽管总是有指针参与,即使我们得到了指针现在指向的东西,但这并不一定意味着你会发现它将继续在哪里。

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

    int* myIntPointer = &myInt;