首先,创建类的实例和结构体实例,并用"="赋值给其他对象:
struct InfoStr
{
public int x;
}
class InfoCla
{
public int y;
}
class MainClass
{
public static void Main(string[] args)
{
InfoStr stru = new InfoStr();
stru.x = 2;
InfoCla cla = new InfoCla();
cla.y = 12;
InfoStr stru_temp = stru;
stru_temp.x = 4;
InfoCla cla_temp = cla;
cla_temp.y = 24;
Console.WriteLine(stru.x); //2
Console.WriteLine(stru_temp.x); //4
Console.WriteLine(cla.y); //24
Console.WriteLine(cla_temp.y); //24
Console.ReadKey();
}
}
因为结构体是值类型变量(存在栈上),等号赋值时直接复制本体,所以改变stru_temp不会影响本体。
而类是引用类型变量(存在堆上),等号赋值相当于复制该变量存在栈