当一个对象被引用调用时,什么被压入堆栈?考虑这个代码:using System;class em{ public int i=0;}class program{ public void method(int a, ref int b, em c, ref em d) { //implementation } static public void Main() { int i; int j; em e1 = new em(); em e2 = new em(); i=9; j=10; Program p=new Program(); p.method(i,ref j,e1,ref e2); }}当传递 e1 时,对象的引用作为参数传递,但在这段代码中,当 e2 通过引用传递时,什么被压入堆栈,即,什么作为参数传递给方法?以及使用 ref 返回相同对象时传递的内容。
2 回答
陪伴而非守候
TA贡献1757条经验 获得超8个赞
数据存在于堆上,因为 e2 不是值类型,所以只有对堆地址的引用存储在堆栈上。所以你没有传递 e2,只是对 e2 的引用。
这是一个很好的链接,显示了值和引用类型之间的差异以及它们的存储位置。
- 2 回答
- 0 关注
- 204 浏览
添加回答
举报
0/150
提交
取消