当一个对象被引用调用时,什么被压入堆栈?考虑这个代码: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 关注
 - 236 浏览
 
添加回答
举报
0/150
	提交
		取消
	