Я совершенно новичок в C#, и я все еще разбираюсь. Моя проблема заключается в том, что у меня есть класс, как это:C# - Как я могу изменить структуру, заданную геттером?
class Sprite {
private Vector3 _position;
public Vector3 Position {
get { return _position; }
set { _position = value;
HandleEvent(); }
}
public Sprite() {
_position = new Vector3();
}
}
С объектом Vector3 и/набором блоком ГЕТ. Вот упрощенная версия структуры Vector3:
struct Vector3 {
float X, Y, Z;
}
Теперь моя проблема заключается в том, что если я это сделать:
Sprite sprite = new Sprite();
sprite.Position.X += 4.0F;
Это дает мне ошибку, потому что позиция не является переменной, но дано мне геттером. Но я не хочу публиковать _position, потому что я хочу обработать событие, когда переменная изменена.
(В Java это работает отлично, поэтому я запутался: /)
Не могли бы вы дать мне намек, что я делаю неправильно или что вы могли бы сделать по-другому?
Edit:
Да, Vector3 является структурой, а не класс. Извините за путаницу, но я довольно новичок в C#.
Можете ли вы разместить сообщение об ошибке, пожалуйста? Это должно сработать. – nvoigt
Вы уверены, что Vector3 - это класс, а не структура? –
Не видите ничего плохого в опубликованном коде. Должно быть что-то еще, что вы не разместили. – Rahul