Ошибка компилятора CS0507
"функция1": невозможно изменить модификаторы доступа при переопределении "уровень доступа", унаследованном из "функция2"
Предпринята попытка изменить спецификацию уровня доступа в переопределении метода.
Пример 1
В следующем примере возникает ошибка CS0507.
// CS0507.cs
abstract public class clx
{
virtual protected void f() {}
}
public class cly : clx
{
public override void f() {} // CS0507
public static void Main() {}
}
Пример 2
Кроме того, ошибка 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() {}
}
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.