接口成员的访问级别是默认的(默认为public),所以在声明时不能再为接口成员指定除public外的任何访问修饰符,否则 编译器会报错。
接口成员不能有static、abstract、override、virtual修饰符,使用new修饰符不会报错,但会给出警告说不需要关键字new。

解决方案 »

  1.   

    interface B
    {
      void f();
    }
      

  2.   


    可是我就是public啊,我去掉了void也不行。    interface B
        {
            public void f();
        }还是报错:
    error CS0106: The modifier 'public' is not valid for this item
      

  3.   


    那么这个void默认的访问级别是public还是internal?
      

  4.   


    可是我就是public啊,我去掉了void也不行。    interface B
        {
            public void f();
        }还是报错:
    error CS0106: The modifier 'public' is not valid for this item
    可是我就是public啊,我去掉了void也不行。    interface B
        {
            public void f();
        }还是报错:
    error CS0106: The modifier 'public' is not valid for this item去掉的应该是public,不是void。
      

  5.   


    那么这个void默认的访问级别是public还是internal?interface 不分级别。
    在实现时再给。
      

  6.   

    一个人问一个很低级很荒谬的问题很常见,但是像你这样每个问题问得都莫名其妙的也真奇葩了。你说定义接口声明个public有什么意义?难道还能是private的么?
      

  7.   


    那么这个void默认的访问级别是public还是internal?方法用全是public ,
    接口修是符可以internal 
      

  8.   

       namespace Learncs
       {
           interface B
           {
               void f();//这样改就行了,接口是不能用public与virtual的,这是语法的规定
           }
           class Program
           {
               static void Main(string[] args)
               {
               }
           }
       }
      

  9.   

    public问题:Interfaces can contain methods, properties, events, indexers, or any combination of those four member types. For links to examples, see Related Sections. An interface can't contain constants, fields, operators, instance constructors, destructors, or types. Interface members are automatically public, and they can't include any access modifiers. Members also can't be static.来自:
    Interfaces (C# Programming Guide)
    http://msdn.microsoft.com/en-us/library/ms173156.aspx
      

  10.   

    virtual问题建议自己想想,应该能想清楚。
      

  11.   

    看这问题其实挺有意思的。比如说virtual,接口的方法就是要来实现的,定义一个virtual方法意思不就是可有可无了?接口的方法是在实现它的时候才有方法体,方法才有具体意义,这时候才有访问分级,没实现接口又没法调用接口的方法,定义public、private啥的都没意义阿。