Я пишу общедоступный класс, реализующий этот интерфейс, я делаю это с помощью метода, который сам помечен как внутренний.< /p>
Код: Выделить всё
public class CP { }
internal class CI { }
public interface IFoo {
public void MethodP(CP arg);
internal void MethodI(CI arg);
}
public class Foo : IFoo {
public void MethodP(CP arg) { }
internal void MethodI(CI arg) { }
}
Однако я не могу сделать его общедоступным, даже если бы захотел - это выдало бы ошибку о общедоступный метод, имеющий внутренний аргумент.
Разумеется, метод в классе, реализующем метод интерфейса, должен быть «по крайней мере таким же доступным», как и метод интерфейса. Но требование публичности кажется ошибкой? Остаток тех времен, когда все методы интерфейса были общедоступными?
Я упускаю для этого вескую причину?
Вы можете сказать об этом явно, вот так:
Код: Выделить всё
public class Foo : IFoo {
public void MethodP(CP arg) { }
void IFoo.MethodI(CI arg) { }
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... -public-me