结构体和类比较相似,但是结构体是值类型,类是引用类型。什么意思呢?可以参照以下代码理解
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两个变量就包含了同一个对象的指针;
结构体是值类型,其变量包含结构体本身而不是其指针,它们有各自的内存空间,所以赋值互不影响。

已有 4259 位网友参与,快来吐槽:
发表评论