结构体和类比较相似,但是结构体是值类型,类是引用类型。什么意思呢?可以参照以下代码理解
namespace Test_001 { class Program { static void Main(string[] args) { ocClass classA = new ocClass(); ocClass classB = classA; classA.str = "A_0001"; classB.str = "B_0002"; ocStruct structA = new ocStruct(); ocStruct structB = structA; structA.str = "C_0003"; structB.str = "D_0004"; Console.WriteLine("classA : {0}", classA.str); Console.WriteLine("classB : {0}", classB.str); Console.WriteLine("structA : {0}", structA.str); Console.WriteLine("structB : {0}", structB.str); Console.ReadKey(); } } class ocClass { public string str; } struct ocStruct { public string str; } }
结果:
类是引用类型,当吧classA赋值给classB时,实际是把带有指针的变量赋给了该指针所指向的对象,而指针是内存中的一个地址,这样classA和classB两个变量就包含了同一个对象的指针;
结构体是值类型,其变量包含结构体本身而不是其指针,它们有各自的内存空间,所以赋值互不影响。
已有 3450 位网友参与,快来吐槽:
发表评论