Разве интерфейс не является общедоступным по умолчанию? - PullRequest
0 голосов
/ 03 апреля 2019

Я помню, что интерфейс общедоступен по умолчанию. Я ошибся? Когда я пытался реализовать "публичный статический" метод из интерфейса. VS сказал мне, что метод в интерфейсе менее доступен, чем "публичный статический". Когда я добавил public в интерфейс, это исправлено. Разве интерфейс не является общедоступным по умолчанию?

interface IDoubleFloatEventInvoker {
 void AddListener(EventName eventName, UnityAction<float, float> unityAction);
}

public static void AddInvoker(EventName eventName, IDoubleFloatEventInvoker invoker)
{
    foreach (UnityAction<float, float> listener in doubleFloatListeners[eventName])
    {
        invoker.AddListener(eventName, listener);
    }
    doubleFloatInvokers[eventName].Add(invoker);
}

«VS говорит, что IDoubleFloatEventInvoker менее доступен, чем функция AddInvoker»

1 Ответ

5 голосов
/ 03 апреля 2019

Члены интерфейса являются общедоступными, но сам интерфейс по умолчанию будет иметь значение internal, если доступность не установлена, точно так же, как класс будет.

Насколько общедоступные члены, это не совсем 'по умолчанию ', они всегда общедоступны, и попытка установить для них доступность приведет к ошибке компиляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...