有没有办法在C#中公开指针地址?

时间:2010-07-28 09:19:36

标签: c# pointers

我的代码中有一个令人困惑的问题,其中一个对象被正确初始化,但是当我通过父引用查看它时,它的属性不再被初始化。 我为我的对象分配了id,我完全相信周围没有重复的对象。查看父项时,子项未初始化,但是 这是我不明白的。 Shoud not C#references指向相同的内存空间,因此即使另一个引用在该内存空间中发生了某些变化,它也会显示正确的值?

修改: 我不需要上面解决的问题。 请提醒一下,这是我感兴趣的问题:

回到标题问题: 为了便于调试,我想查看所有那些抽象的引用,就像我在C ++中所做的那样。我认为,当我能做到这一点时,我会立即明白出现了什么问题。

3 个答案:

答案 0 :(得分:2)

你是否有可能使用结构而不是类?它们在赋值时被复制,因此更改(或初始化)不会影响复制的对象。

如果您只是想检查您的对象是否相同,您可以只比较它们的引用。在“安全”环境中无法在内存中获取指针/地址。

答案 1 :(得分:1)

如果要在调试时跟踪特定引用所指向的对象,则可以在Watch窗口中右键单击引用,然后选择“Make Object ID”。对同一对象的任何其他引用现在将在调试器中显示相同的ID(例如{1#}),并且即使当前堆栈帧上没有引用,您也可以将ID添加为要监视的值。

请参阅here以获取示例

答案 2 :(得分:0)

你可以比较参考...听起来就像你在某个地方复制一个对象。