Почему я не могу объявить открытый метод в интерфейсе?
Почему компилятор не объявляет открытый метод в интерфейсе класса (это вызвало ошибку, которую я получил здесь Интерфейс .NET, наследование и библиотека: ошибка не реализовать элемент интерфейса).
Это просто из-за синтаксиса или из-за чего-то более фундаментального?
ОК это неявное, но почему было бы больно сделать его явным?
Ответы
Ответ 1
Интерфейс - это контракт и где угодно, где вы можете получить доступ к интерфейсу, вы должны иметь доступ ко всем методам в нем. Другими словами, все методы, объявленные в интерфейсе, должны быть общедоступными, поэтому не имеет смысла указывать его явно.
Ответ 2
Интерфейсные методы неявно публичны, поэтому объявление их public является избыточным.
Ответ 3
Проверьте это
Думал, что это для констант, я думаю, что это то, о чем говорили разработчики языка, почему бы не разрешить Public в интерфейсе.
Ответ 4
Вы не можете использовать модификаторы доступа в интерфейсах (например, частные, частичные). Это связано с тем, что ответственность за реализацию класса заключается в том, чтобы отметить доступность методов. Он поддерживает назначение интерфейсов сингулярным, что должно определять подпись класса, а не определять его ограничение доступа.