Подтвердить что ты не робот

Почему я не могу объявить открытый метод в интерфейсе?

Почему компилятор не объявляет открытый метод в интерфейсе класса (это вызвало ошибку, которую я получил здесь Интерфейс .NET, наследование и библиотека: ошибка не реализовать элемент интерфейса).

Это просто из-за синтаксиса или из-за чего-то более фундаментального?

ОК это неявное, но почему было бы больно сделать его явным?

4b9b3361

Ответ 1

Интерфейс - это контракт и где угодно, где вы можете получить доступ к интерфейсу, вы должны иметь доступ ко всем методам в нем. Другими словами, все методы, объявленные в интерфейсе, должны быть общедоступными, поэтому не имеет смысла указывать его явно.

Ответ 2

Интерфейсные методы неявно публичны, поэтому объявление их public является избыточным.

Ответ 3

Проверьте это

Думал, что это для констант, я думаю, что это то, о чем говорили разработчики языка, почему бы не разрешить Public в интерфейсе.

Ответ 4

Вы не можете использовать модификаторы доступа в интерфейсах (например, частные, частичные). Это связано с тем, что ответственность за реализацию класса заключается в том, чтобы отметить доступность методов. Он поддерживает назначение интерфейсов сингулярным, что должно определять подпись класса, а не определять его ограничение доступа.