Sdílet prostřednictvím


interface (Referenční dokumentace jazyka C#)

Rozhraní obsahuje pouze podpisy metod, vlastností x9fsa0sw(v=vs.120).md, událostí awbftdfh(v=vs.120).md nebo indexování 6x16t2tx(v=vs.120).md.Třídu nebo strukturu, která implementuje rozhraní musí implementovat členy rozhraní zadané v definici rozhraní.V následujícím příkladu musí třída ImplementationClass implementovat metodu s názvem SampleMethod, která nemá žádné parametry a vrací void.

Další informace a příklady naleznete v tématu Rozhraní (Průvodce programováním v C#).

Příklad

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();
    }
}

Rozhraní může být členem oboru názvů nebo třídy a může obsahovat podpisy následujících členů:

Rozhraní může dědit z jednoho nebo více základních rozhraní.

Jestliže základní typ seznamu obsahuje základní třídu a rozhraní, musí se základní třída nacházet v seznamu jako první.

Třída, která implementuje rozhraní může explicitně implementovat členy rozhraní.Explicitně implementovaný člen není přístupný prostřednictvím instance třídy, ale pouze prostřednictvím instance rozhraní.

Podrobné informace a příkladech kódu explicitní implementace rozhraní naleznete v tématu Implementace explicitního rozhraní (Průvodce programováním v C#).

Následující příklad ukazuje implementaci rozhraní.V tomto příkladu obsahuje rozhraní deklaraci vlastnosti a třída obsahuje implementaci.Jakákoli instance třídy, která implementuje rozhraní IPoint má celočíselné vlastnosti x a y.

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

Specifikace jazyka C#

Další informace najdete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.

Viz také

Referenční dokumentace

Klíčová slova jazyka C#

Typy odkazů (Referenční dokumentace jazyka C#)

Rozhraní (Průvodce programováním v C#)

Použití vlastností (Průvodce programováním v C#)

Použití indexerů (Průvodce programováním v C#)

class (Referenční dokumentace jazyka C#)

struct (Referenční dokumentace jazyka C#)

Rozhraní (Průvodce programováním v C#)

Koncepty

Průvodce programováním v C#

Další zdroje

Referenční dokumentace jazyka C#