Изменение сигнатуры метода базового класса отчасти похоже на написание нового метода вместо переопределения существующего. Это противоречит цели переопределения метода. Так что, возможно, причина, по которой вы не можете изменить модификатор доступа при переопределении методов в C #.

мы не можем изменить модификатор доступа при переопределении метода из базового класса. например

Class Base
{
   **protected** string foo()
   {
       return "Base";
   }
}

Class Derived : Base
{
   **public** override string foo()
   {
       return "Derived";
   }
}

Это недопустимо в C #, это даст ошибку времени компиляции.

Я хочу знать причину, почему это не разрешено. Есть ли техническая проблема или это может привести к чему-то, что не согласуется с точки зрения ограничения доступа ???

Ответы на вопрос(1)

Ваш ответ на вопрос