根据作业复制结构
Sinse 结构是值类型,所有数据在分配时复制,对新副本的任何修改都不会更改原始副本的数据。下面的代码片段显示 p1
被复制到 p2
,而 p1
上的更改不会影响 p2
实例。
var p1 = new Point {
x = 1,
y = 2
};
Console.WriteLine($"{p1.x} {p1.y}"); // 1 2
var p2 = p1;
Console.WriteLine($"{p2.x} {p2.y}"); // Same output: 1 2
p1.x = 3;
Console.WriteLine($"{p1.x} {p1.y}"); // 3 2
Console.WriteLine($"{p2.x} {p2.y}"); // p2 remain the same: 1 2