我将首先用一些代码来说明我的问题:
class ExampleClass
{
private Vector2 _myVector;
public Vector2 MyVectorProperty { get { return _myVector; } set { _myVector = value; } }
private void MyMethod()
{
_myVector = Vector2.Zero; // Setting to zero
MyVectorProperty.X = 5; //Cannot modify the expression because it is not a variable (returns an error)
_myVector.X = 5; //Works fine!
}
}
如您所见,当尝试使用该属性更改向量上 X 和 Y 的值时,我收到错误“无法修改表达式,因为它不是变量”。我不确定为什么会发生这种情况并且在网上没有任何运气,我想知道为什么会这样以及如何(如果)我可以解决它?
另一个子问题,在它们所属的类中工作时使用公共属性或私有/受保护字段是一种好的编程习惯吗?