标签:
【引用类型和值类型的区别】
//引用类型(由于使用了‘class’) class SomeRef { public Int32 x; } //值类型(由于使用了‘struct’) struct SomeVal { public Int32 x; } static void ValueTypeDemo() { SomeRef r1 = new SomeRef(); //在堆上分配 SomeVal v1 = new SomeVal(); //在栈上分配 r1.x = 5; //提另指针 v1x = 5; //在栈上修改 Console.WriteLine(r1.x); //显示”5“ Console.WriteLine(v1.x);//显示”5“ SomeRef r2 = r1; //只复制引用(指针) SomeVal v2 = v1;//在栈中分配并复制成员 r1.x = 8;//r1.x和r2.x都会改变 v1.x = 9;//v1.x 会更改,但v2.x不变 Console.WriteLine(r1.x);//显示"8" Console.WriteLine(r2.x);//显示"8" Console.WriteLine(v1.x);//显示"9" Console.WriteLine(v2.x);//显示"5" }
【图解】
读经典——《CLR via C#》(Jeffrey Richter著) 笔记_引用类型和值类型(二)
标签:
原文地址:http://www.cnblogs.com/lishidefengchen/p/4479863.html