Ошибка компилятора CS0546
Обновлен: Ноябрь 2007
Сообщение об ошибке
"метод доступа": переопределение невозможно, поскольку "свойство" не имеет метода доступа set, доступного для переопределения
'accessor' : cannot override because 'property' does not have an overridable set accessor
Попытка переопределить методы доступа для свойства не удалась, так как метод доступа невозможно переопределить. Для устранения данной ошибки можно воспользоваться следующими способами.
Добавьте метод доступа set в базовый класс.
Удалите метод доступа set из производного класса.
Скройте свойство базового класса, добавив ключевое слово new к свойству производного класса.
Сделайте свойство базового класса виртуальным.
Дополнительные сведения см. в разделе Использование свойств (руководство по программированию в C#).
Пример
Этот пример приводит к возникновению ошибки CS0546.
// CS0546.cs
// compile with: /target:library
public class a
{
public virtual int i
{
get
{
return 0;
}
}
public virtual int i2
{
get
{
return 0;
}
set {}
}
}
public class b : a
{
public override int i
{
set {} // CS0546 error no set
}
public override int i2
{
set {} // OK
}
}