C# 类的成员的值类型和引用类型

对于类里面的成员的值类型和引用类型的概念一直有点模糊,写个例子加深记忆

第一种

新建2个类

 1 class Box
 2     {
 3 
 4         public Item Item { get; set; }//引用类型
 5         public Box(Item item) => this.Item = item;
 6 
 7 
 8     }
 9     class Item
10     {
11         public string Name { get; set; } = "手机";
12     }

测试

 1 static void Main(string[] args)
 2         {
 3             var item = new Item();
 4             var box = new Box(item);
 5 
 6             Console.WriteLine($"{box.Item.Name}");
 7 
 8             item.Name = "苹果";//更改item的名字
 9 
10             Console.WriteLine($"{box.Item.Name}");
11 
12         }

结果 发生改变

第二种

 

 1 class Box
 2     {
 3 
 4         //public Item Item { get; set; }//引用类型
 5         //public Box(Item item) => this.Item = item;
 6         public string ItemName { get; set; }//字符串虽然是引用类型,但是引用的时候仍然是创建副本
 7         public Box(string itemName) => this.ItemName = itemName;
 8 
 9 
10     }
11     class Item
12     {
13         public string Name { get; set; } = "手机";
14     }

测试

 1 static void Main(string[] args)
 2         {
 3             var item = new Item();
 4             var box = new Box(item.Name);
 5 
 6             Console.WriteLine($"{box.ItemName}");
 7 
 8             item.Name = "苹果";//更改item的名字
 9 
10             Console.WriteLine($"{box.ItemName}");
11 
12         }

结果 没有变化

posted @ 2021-05-05 08:40  只吃肉不喝酒  阅读(191)  评论(0编辑  收藏  举报