Методы доступа к свойствам нельзя объявить как <модификаторДоступа> в свойстве NotOverridable
Обновлен: Ноябрь 2007
Property accessors cannot be declared '<accessmodifier>' in a 'NotOverridable' property
Свойство Оператор Get или Инструкция Set (Visual Basic) в NotOverridable содержит ключевое слово Private.
Следующая строка объясняет причину, по которой NotOverridable и Private не могут быть использованы в сочетании с Оператор Property:
Свойство или процедура, которая не переопределяет свойство или процедуру базового класса, по умолчанию NotOverridable.
Однако свойство или процедура в производном классе, который переопределяет свойство или процедуру базового класса, имеет значение по умолчанию Overridable. Для завершения иерархии переопределения, можно объявить его как NotOverridable. Это единственный контекст, в котором можно использовать NotOverridable. То есть можно использовать NotOverridable только в сочетании с Overrides.
Если свойство или процедура базового класса объявлены как Private (Visual Basic), производный класс не может переопределять свойство или процедуру, поскольку он не может получить к ним доступ. Таким образом, нельзя использовать Private в сочетании с Overridable.
Чтобы переопределить свойство или процедуру, переопределяемые свойство или процедура должны иметь не только идентичную подпись, но и тот же уровень доступа. Это означает, что для переопределяемого свойства или процедуры нельзя указать Private, так как для переопределяемого свойства или процедуры нельзя указывать Private.
Поскольку можно указать NotOverridable только для переопределения свойства или процедуры, нельзя объединять его с Private.
По тем же причинам отдельные процедуры свойств (Get и Set) переопределенного свойства не могут быть Private.
Идентификатор ошибки: BC31106
Исправление этой ошибки
- Удалите ключевое слово Private из оператора Get или Set или удалите ключевые слова Overrides и NotOverridable из оператора Property.
См. также
Задачи
Практическое руководство. Объявление свойства со смешанным уровнем доступа