interface public 不是默认的吗?
Isn't interface public by default?
我记得界面默认是public。我错了吗?当我尝试从接口实现 "public static" 方法时。 VS 告诉我,接口中的方法比 "public static" 方法更难访问。当我将 public 添加到界面时,它修复了。接口默认不是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 says IDoubleFloatEventInvoker is less accessible than the AddInvoker function"
接口成员是 public,但如果未设置可访问性,接口本身将默认为 internal
,与 class 相同。
就成员 public 而言,这并不完全是 'by default':它们总是 public,并且尝试对它们设置可访问性将导致编译错误。
我记得界面默认是public。我错了吗?当我尝试从接口实现 "public static" 方法时。 VS 告诉我,接口中的方法比 "public static" 方法更难访问。当我将 public 添加到界面时,它修复了。接口默认不是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 says IDoubleFloatEventInvoker is less accessible than the AddInvoker function"
接口成员是 public,但如果未设置可访问性,接口本身将默认为 internal
,与 class 相同。
就成员 public 而言,这并不完全是 'by default':它们总是 public,并且尝试对它们设置可访问性将导致编译错误。