默认情况下,接口不是公开的吗?

时间:2019-04-02 23:34:34

标签: c# interface static access-modifiers

我记得默认情况下该接口是公共的。我错了吗?当我尝试从接口实现“公共静态”方法时。 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 个答案:

答案 0 :(得分:5)

接口成员是公共的,但是如果未设置可访问性,则接口本身将默认为internal,就像类一样。

就成员是公共成员而言,这并不是完全“默认”,它们始终是公共成员,尝试对其设置可访问性将导致编译错误。