class c:a{void a.b(){}}to implement interface methods explicitly, you can not use modifiers like public, seehttp://msdn.microsoft.com/library/en-us/csspec/html/vclrfcsharpspec_13_4_1.asp?frame=true
It is a compile-time error for an explicit interface member implementation to include access modifiers, and it is a compile-time error to include the modifiers abstract, virtual, override, or static.

解决方案 »

  1.   

    不过接口里的方法可以在加一个呀,反正可以override,考虑的越多越好吧??
      

  2.   

    接口中只写出方法名就可以不用写出实现过程.
    但是在继承接口类中,必须实现接口中的方法.
    以下应该可以.
    class c:a{void a.b(){ ...............}}
      

  3.   

    class c:a
    {
    public void b(){}}
    即可
      

  4.   

    楼主应注意实现接口的规则接口定义:
    interface a { void b();}接口实现1:
    class c:a
    {
      void a.b()
      {}
    }接口实现2:
    class c:a
    {
      public void b()
      {}
    }实现规则:
    1. 你用 a.b() 来实现,则不能前缀 public;
    2. 你要前缀 public,就只能用 b(),而不能用a.b();
    为什么要这样约定,请看下面定义的类:interface a { void b();}class c:a
    {
      void a.b()
      {
         MessageBox.Show("实现接口的b()方法");
      }  public b()
      {
         MessageBox.Show("类自己的b()方法");
      }
    }class m
    {
       a p1=new c();
       c p2=new c();   p1.b();    // display  实现接口的b()方法
       p2.b();    // display  类自己的b()方法}不知是否为楼主阐述明白?
      

  5.   

    如果是这样的话,我的类中实现了接口的方法,那么又如何在另一个类中使用这个方法呢?
    e.g.
    namespace n1{
       public interface a{
              void m1(); }
       public class b: n1.a
          {
               void n1.m1(){..}
           }   public class c:n1.b
             {
               protected override void m1(){..} //  不能实现
             }}
      

  6.   

    interface a { void b();}
    你可以显示的实现
    class c:a
    {
      void a.b()
      {//....}
    }
    显示实现调用的时候要注意:
    c cc = new c();
    a ia = cc;
    ia.b();//调用也可以隐式的实现
    class c:a
    {
      public void b()
      {//...}
    }
      

  7.   

    这样才可以override:
    namespace n1{
       public interface a{
              void m1(); }
       public class b: n1.a
          {
               void /*>>>*/virtual n1.m1(){..}
           }   public class c:n1.b
             {
               protected override void m1(){..} //  不能实现
             }}
    你用base.m1()可以吗?
      

  8.   

    看来楼主混淆 
    了接口,
    和函数从写从借口集成的类必须实现 接口中的函数,但要从写的话
    要在基础类 virtual 的函数才可以 override