最初に、いくつかのコードを使用して問題を説明します。
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 の値を変更しようとすると、「変数ではないため式を変更できません」というエラーが表示されます。なぜこれが起こるのかよくわかりませんし、ネットを見てもうまくいきませんでした。
別の副次的な質問です。パブリック プロパティまたはプライベート/保護されたフィールドを、それらが属するクラス内で作業するときに使用することは、適切なプログラミング方法ですか?