【发布时间】:2014-01-01 10:02:04
【问题描述】:
public class ReferenceType
{
public int FName { get; set; }
public int LName { get; set; }
}
ReferenceType rt1; //Line 6
rt1 = new ReferenceType(); //Line 7 >>have just split a single line statement<<
众所周知
引用类型是如何工作的,在上面的代码场景中
rt1在堆栈中分配一部分内存,以在将来保存some对象的引用(第 6 行)rt1被分配了在堆上创建的对象的引用 [a specific]
现在,这个引用在内部是什么样子的,rt1 是否保存(创建的)对象的地址,十六进制,就像 c++ 中的指针一样,还是其他什么?
【问题讨论】:
-
IMO 这太宽泛了,涉及太多 CLR 实现细节。像 C++ 指针之类的东西(我不明白你对 hexadecimal 的意思)。实际上,您最好将其称为 handle 而不是指针(因为对象 可能 会被 GC 移动到内存中)。
-
您可能会发现这很有用:codeproject.com/Articles/20481/…
-
这个问题之前已经被问过(并回答过):stackoverflow.com/questions/5920636/…
-
@adriano hexadecimal 我的意思是内存中的地址位置,就像我们在 c++ 中一样......
标签: c#