其中是接口变量指向存储的-C#的地址
本文关键字:存储 -C# 地址 接口 变量 | 更新日期: 2023-09-27 18:22:01
我想知道,在您从实现某个接口的某个对象转换到该特定接口后,引用内容会去哪里?这里有一个例子:
MyClass mc=新MyClass();
MyClass实现IIfc。所以,这里是铸造到接口:
IIfc ifc = (IIfc) mc;
ifc
的内容保存在哪里,我知道是在heap上,,但它是mc实例的一部分,还是指向作为ifc一部分的mc方法的其他内存地址?
附言:我看到很多人都不明白这个问题。ifc指向的地址在哪里?它是在对象(mc)内部还是在堆的其他位置
对象保持原样。参考也停留在原来的位置。
这就是为什么你可以把它放回MyClass
:
IIfc ifc = (IIfc) mc;
MyClass mc2 = (MyClass) ifc;
实际上IIfc ifc本身是一个引用,它位于当前执行的胎面堆栈的int处,因此它不是mc的一部分。reference指向与mc相同的位置。