日期:2014-05-16  浏览次数:21735 次

为什么interface里面定义的函数不能用Public修饰?
我的C#代码是:

    interface iii
    {
        public void f();
    }


编译会有问题:error CS0106: The modifier 'public' is not valid for this item
奇怪了,难道interface里面不能使用访问限定符吗?
------解决方案--------------------
因为没必要,接口里面定义的方法一定是公开的,不然接口就失去了意义。
------解决方案--------------------
不用修饰,只能是public的
------解决方案--------------------
当然。对于interface内的方法,实现类可以公有实现,或者私有实现(显式实现):
interface I { void foo(); }
公有实现
class A : I { public void foo() { ... } }
私有实现
class B : I { private void I.foo() { ... } }