C#引用类型的赋值机制

来源:互联网 发布:java bigdecimal 加 编辑:程序博客网 时间:2024/05/17 15:58
using System;class Test{public static void Main(){string s1 = "hello";string s2 = s1;Console.WriteLine(s1);Console.WriteLine(s2);s1 = "world";Console.WriteLine(s1);Console.WriteLine(s2);}}/*hellohelloworldhello*/


解释:

(1)s1="hello"; 执行的是在堆中创建了一个String类型的对象,将这个对象的地址赋给s1。

(2)s2=s1; 执行的是将"hello"对象的地址也赋给了s2。
(3)s1="world"; 实质上并不会去改变"hello"这个对象,它改变的是s1指向的地址,而不是它原来指向对象的内容。

Ps.其他引用类型也是如此。

原创粉丝点击