【问题标题】:Isn't interface public by default?接口默认不公开吗?
【发布时间】:2019-08-24 09:07:12
【问题描述】:

我记得默认情况下接口是公共的。我错了吗?当我尝试从接口实现“公共静态”方法时。 VS 告诉我,接口中的方法比“公共静态”方法更难访问。当我将公共添加到界面时,它已修复。接口默认不公开吗?

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 函数更难访问”

【问题讨论】:

标签: c# interface static access-modifiers


【解决方案1】:

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

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

【讨论】:

  • 谢谢你,我的人。有什么方法可以将您的答案设置为选定的正确答案?
  • 我明白了。正确的检查。大声笑我刚刚做到了。谢谢!
猜你喜欢
  • 2016-09-06
  • 2013-01-17
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-16
  • 2013-01-21
相关资源
最近更新 更多