Как мне переопределить метод установки свойства в C #?

У меня есть класс с подклассом. Суперкласс имеет свойство Position . Подкласс должен выполнить дополнительную операцию при изменении свойства Position , поэтому я пытаюсь переопределить метод установки и вызвать установщик суперкласса.

Я думаю, что у меня есть вызывающая часть установщика суперкласса вниз, но я не могу понять, как здесь работает замещающий синтаксис.

Вот моя лучшая попытка: code

Геттер нужен только для доказательства концепции - предположим, я хотел бы переопределить и это?

Геттер и сеттер выдают мне ошибки такой формы:

не может переопределить унаследованный член superClassName.Position. [Gs ] et ', потому что он не помечен как виртуальный, абстрактный,or override

Вот и снимок экрана с ошибками, на всякий случай: errors

Я также пробовал использовать ключевое слово override перед набором . Удаление лишнего получателя не имеет никакого эффекта.

Какой правильный синтаксис?

25
задан Anko 17 June 2011 в 11:40
поделиться

2 ответа

Переопределение в порядке. Однако, как говорится в сообщении об ошибке, необходимо пометить свойство в базовом классе как виртуальное, чтобы иметь возможность его переопределить:

public virtual Vector2 Position

В отличие от Java, члены класса по умолчанию не являются виртуальными в C #. Если вы не можете изменить базовый класс, вам не повезло.

39
ответ дан 28 November 2019 в 18:21
поделиться

Проблема указана вам в сообщении об ошибке:)

Вы не можете переопределить элементы, которые не являются виртуальными (или абстрактными).

Ваш суперкласс должен иметь virtual в определении свойства:

public virtual Vector2 Position { ... }
6
ответ дан 28 November 2019 в 18:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: