interface (C# Başvurusu)interface (C# Reference)

Arabirim yalnızca yöntemlerin, özelliklerin, olayların veya Dizin oluşturucularınimzalarını içerir.An interface contains only the signatures of methods, properties, events or indexers. Ara birimi uygulayan bir sınıfın veya yapının, ara birim tanımında belirtilen ara birim üyelerini uygulaması gerekir.A class or struct that implements the interface must implement the members of the interface that are specified in the interface definition. Aşağıdaki örnekte ImplementationClass sınıfının, parametresi olmayan ve SampleMethod'i döndüren void adlı bir yöntemi uygulaması gerekir.In the following example, class ImplementationClass must implement a method named SampleMethod that has no parameters and returns void.

Daha fazla bilgi ve örnek için bkz. arabirimler.For more information and examples, see Interfaces.

ÖrnekExample

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

Ara birim, bir ad alanının veya bir sınıfın üyesi olabilir ve aşağıdaki üyelerin imzalarını içerebilir:An interface can be a member of a namespace or a class and can contain signatures of the following members:

Bir ara birim, bir veya daha fazla temel ara birimden devralınabilir.An interface can inherit from one or more base interfaces.

Bir temel tür listesi temel bir sınıfı ve ara birimleri içerdiğinde, temel sınıfın listede ilk sırada olması gerekir.When a base type list contains a base class and interfaces, the base class must come first in the list.

Bir ara birimi uygulayan bir sınıf, o ara birimin üyelerini açıkça uygulayabilir.A class that implements an interface can explicitly implement members of that interface. Açıkça uygulanan bir üyeye, bir sınıfın örneği üzerinden erişilemez, yalnızca ara birimin bir örneği üzerinden erişilebilir.An explicitly implemented member cannot be accessed through a class instance, but only through an instance of the interface.

Açık arabirim uygulamasındaki diğer ayrıntılar ve kod örnekleri için bkz. Açık arabirim uygulama.For more details and code examples on explicit interface implementation, see Explicit Interface Implementation.

ÖrnekExample

Aşağıdaki örnek, ara birim uygulamasını gösterir.The following example demonstrates interface implementation. Bu örnekte, ara birim özellik bildirimini, sınıf ise uygulamayı içerir.In this example, the interface contains the property declaration and the class contains the implementation. IPoint öğesini uygulayan bir sınıfın herhangi bir örneği x ve y tamsayı özelliklerine sahiptir.Any instance of a class that implements IPoint has integer properties x and 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()
   {
      IPoint p = new Point(2, 3);
      Console.Write("My Point: ");
      PrintPoint(p);
   }
}
// Output: My Point: x=2, y=3

C# dili belirtimiC# language specification

Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi.For more information, see the C# Language Specification. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.The language specification is the definitive source for C# syntax and usage.

Ayrıca bkz.See also