共用方式為


interface (C# 參考)

更新:2007 年 11 月

介面只包含方法屬性事件索引的簽章。成員的實作 (Implementation) 是在實作介面的類別或結構中完成,如下列範例所示:

範例

interface ISampleInterface
{
    void SampleMethod();
}

class ImplementationClass : ISampleInterface
{
    // Explicit interface member implementation: 
    void ISampleInterface.SampleMethod()
    {
        // Method implementation.
    }

    static void Main()
    {
        // Declare an interface instance.
        ISampleInterface obj = new ImplementationClass();

        // Call the member.
        obj.SampleMethod();
    }
}

介面可以是命名空間 (Namespace) 或類別的成員,而且可以包含下列成員的簽章:

介面可以繼承一個或多個基底介面。

當基底型別 (Base Type) 清單包含基底類別和介面時,基底類別一定會排在清單的第一個。

實作介面的類別能夠明確實作該介面的成員。明確實作的成員只能經由該介面的執行個體 (Instance) 來存取,不能經由類別執行個體存取。

如需詳細資訊以及明確介面實作的程式碼範例,請參閱明確介面實作 (C# 程式設計手冊)

下列範例示範了介面實作。在這個範例中,介面包含屬性宣告,類別則包含實作。

interface IPoint
{
   // Property signatures:
   int x
   {
      get;
      set;
   }

   int y
   {
      get;
      set;
   }
}

class Point : IPoint
{
   // Fields:
   private int _x;
   private int _y;

   // Constructor:
   public Point(int x, int y)
   {
      _x = x;
      _y = y;
   }

   // Property implementation:
   public int x
   {
      get
      {
         return _x;
      }

      set
      {
         _x = value;
      }
   }

   public int y
   {
      get
      {
         return _y;
      }
      set
      {
         _y = value;
      }
   }
}

class MainClass
{
   static void PrintPoint(IPoint p)
   {
      Console.WriteLine("x={0}, y={1}", p.x, p.y);
   }

   static void Main()
   {
      Point p = new Point(2, 3);
      Console.Write("My Point: ");
      PrintPoint(p);
   }
}
// Output: My Point: x=2, y=3

C# 語言規格

如需詳細資料,請參閱 C# 語言規格中的下列章節:

  • 1.9 介面

  • 3.4.5 介面成員

  • 4.2.4 介面型別

  • 10.1.2.2 介面實作

  • 11.2 結構介面

  • 13 介面

請參閱

概念

C# 程式設計手冊

參考

C# 關鍵字

參考型別 (C# 參考)

使用屬性 (C# 程式設計手冊)

使用索引子 (C# 程式設計手冊)

類別 (C# 參考)

struct (C# 參考)

其他資源

C# 參考