Ошибка компилятора CS0507
Обновлен: Ноябрь 2007
Сообщение об ошибке
"функция 1": невозможно изменить модификаторы доступа при переопределении унаследованного члена "доступ" "функция 2"
'function1' : cannot change access modifiers when overriding 'access' inherited member 'function2'
Была сделана попытка изменения указания доступа при переопределении метода.
Пример
Следующий пример приводит к возникновению ошибки CS0507.
// CS0507.cs
abstract public class clx
{
virtual protected void f() {}
}
public class cly : clx
{
public override void f() {} // CS0507
public static void Main() {}
}
Ошибка CS0507 может также возникнуть, если класс пытается переопределить метод, помеченный как protected internal, и определенный в ссылочных метаданных. В этом случае переопределяющий метод следует пометить protected.
// CS0507_b.cs
// compile with: /target:library
abstract public class clx
{
virtual protected internal void f() {}
}
Следующий пример приводит к возникновению ошибки CS0507.
// CS0507_c.cs
// compile with: /reference:cs0507_b.dll
public class cly : clx
{
protected internal override void f() {} // CS0507
// try the following line instead
// protected override void f() {} // OK
public static void Main() {}
}