值类型与引用类型

先上代码

 1 class TestClass
 2 {
 3     public int val;
 4 }
 5 struct TestStruct
 6 {
 7     public int val;
 8 }
 9 
10 class Program
11 {
12     static void Main(string[] args)
13     {
14         TestClass testClass1 = new TestClass();
15         TestClass testClass2 = testClass1;
16         testClass1.val = 10;
17         testClass2.val = 20;
18 
19         TestStruct testStruct1 = new TestStruct();
20         TestStruct testStruct2 = testStruct1;
21         testStruct1.val = 30;
22         testStruct2.val = 40;
23 
24         WriteLine($"testClass1.val = {testClass1.val}");
25         WriteLine($"testClass2.val = {testClass2.val}");
26         WriteLine($"testStruct1.val = {testStruct1.val}");
27         WriteLine($"testStruct2.val = {testStruct2.val}");
28 
29         ReadKey();
30 
31     }
32 }

运行结果为

出现这种情况是因为结构为值类型,类为引用类型

书里给出的解释是把对象赋给变量时,实际是把带有一个指针的变量赋给了该指针所指向的对象。

画一个我理解的图

结构是值类型,并不包含指针,所以,只是单纯的把第一个结构的所有信息复制到第二个结构中

 

posted @ 2018-11-06 16:54  邢韬  阅读(127)  评论(0编辑  收藏  举报