小声哔哔
一直以来对于值类型与引用类型之间的区别都不是特别清晰,直到踩了坑....
正好最新闲暇,便想着梳理梳理这一两年来遇到的奇葩问题和解决方案,顺便就把它给拎出来记一下,免得以后再摔跤
值类型与引用类型的区别
今天为了说明值类型与引用类型的典型区别,准备把结构体(值类型)和类(引用类型)拉出来溜溜
首先咱们先定义一下
/// <summary>
/// 类
/// </summary>
class TestClass
{
public int Id { get; set; }
public string Name { get; set; }
}
/// <summary>
/// 结构体
/// </summary>
struct TestStruct
{
public int Id { get; set; }
public string Name { get; set; }
}
然后咱看代码
class Program
{
static void Main(string[] args)
{
//测试引用类型
TestClass c1 = new TestClass { Id = 0, Name = "未定义" };
TestClass c2 = c1;//c1给了c2
c2.Id = 1;c2.Name = "a";
Console.WriteLine($"c1[{c1.Id},{c1.Name}]");
//测试值类型
TestStruct s1 = new TestStruct { Id = 0, Name = "未定义" };
TestStruct s2 = s1;//s1给了s2
s2.Id = 2; s2.Name = "b";
Console.WriteLine($"s1[{s1.Id},{s1.Name}]");
Console.ReadKey();
}
}
最后看结果
结束
好了,结果显而易见,剩下的自己悟吧,遇到这个坑别忘了跳一跳,摔到里面真的挺疼的
原文地址:https://www.cnblogs.com/amber-L/p/11971443.html
时间: 2024-10-10 11:15:36