赋值是值传递还是引用传递
1个回答
展开全部
值类型和引用类型:一个是存放在栈上的内容为栈中对象,另一个存放在堆中的内容为堆中对象.
值类型存放在栈中,直接访问。
引用类型需要在堆中显式分配,且不能直接访问,需要在栈中分配一个栈中对象指向其堆中对象。
参数传递分值传递和引用传递两种。
通常,在没有显式指出ref和out时都是值传递。
值传递:传的是对象的值拷贝。(即函数内参数对象是调用时传递对象的栈中对象的拷贝。)
引用传递:传的是栈中对象的地址。(即函数内参数对象与调用时传递对象完全是同一栈中对象。)
this.label1.Text = this.label2.Text;
这个是属性Text 传值。 (对象this.label1没有 指向this.label2)
a1 = a2;
这个是对象a1 指向 a2,
如果你换成
a1.Message=a2.Message;
答案会和第一个相同
值类型存放在栈中,直接访问。
引用类型需要在堆中显式分配,且不能直接访问,需要在栈中分配一个栈中对象指向其堆中对象。
参数传递分值传递和引用传递两种。
通常,在没有显式指出ref和out时都是值传递。
值传递:传的是对象的值拷贝。(即函数内参数对象是调用时传递对象的栈中对象的拷贝。)
引用传递:传的是栈中对象的地址。(即函数内参数对象与调用时传递对象完全是同一栈中对象。)
this.label1.Text = this.label2.Text;
这个是属性Text 传值。 (对象this.label1没有 指向this.label2)
a1 = a2;
这个是对象a1 指向 a2,
如果你换成
a1.Message=a2.Message;
答案会和第一个相同
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询