这是因为
Point是值类型(
struct)。
因此,当您访问
Origin属性时,您将访问该类所拥有的值的 副本
,而不是使用引用类型(
class)时的值本身,因此,如果您
X在其上设置属性,则需要设置副本上的属性,然后将其丢弃,保留原始值不变。这可能不是您想要的,这就是编译器向您发出警告的原因。
如果只想更改
X值,则需要执行以下操作:
Origin = new Point(10, Origin.Y);

这是因为
Point是值类型(
struct)。
因此,当您访问
Origin属性时,您将访问该类所拥有的值的 副本
class)时的值本身,因此,如果您
X在其上设置属性,则需要设置副本上的属性,然后将其丢弃,保留原始值不变。这可能不是您想要的,这就是编译器向您发出警告的原因。
如果只想更改
X值,则需要执行以下操作:
Origin = new Point(10, Origin.Y);