值类型重新赋值,不会影响原数值;引用类型直接赋值,会影响原数值
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace Demo2 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 RefAndValue.Demo();//由于定义的是静态的类,所以直接调用就可以 14 15 } 16 } 17 class stanp//定义一个类 18 { 19 public string Name { get; set; }//定义一个引用类型 20 public int Age { get; set; }//定义一个值类型的属性 21 } 22 static class RefAndValue//定义静态类 23 { 24 public static void Demo()//定义一个方法 25 { 26 stanp Stanp1 = new stanp { Name = "A", Age = 25 };//创建stanp的类对象stanp1给name和age赋值 27 stanp Stanp2 = new stanp { Name = "B", Age = 30 };//创建stanp的类对象stanp2给name和age赋值; 28 int age = Stanp1.Age;//定义一个int类型变量age 29 Stanp1.Age = 35;//对stanp1中的age值修改属性,修改为35;值类型 30 stanp Stanp3 = Stanp2;//创建stanp对象stanp3 31 Stanp2.Name = "C";//修改stanp2中的值;引用类型 32 Console.WriteLine("stanp1的age属性" + Stanp1.Age); 33 Console.WriteLine("age的值" + age); 34 Console.WriteLine("stanp2的name值" + Stanp2.Name); 35 Console.WriteLine("stanp3的name值" + Stanp3.Name); 36 Console.Read(); 37 } 38 } 39 }
运行结果: