Arabirim Özellikleri (C# Programlama Kılavuzu)

Özellikler bir arabirimde bildirilebilir. Aşağıdaki örnek bir arabirim özelliği erişimcisi bildirir:

public interface ISampleInterface
{
    // Property declaration:
    string Name
    {
        get;
        set;
    }
}

Arabirim özelliklerinin genellikle gövdesi yoktur. Erişimciler özelliğin salt okunur mu yoksa salt okunur mu olduğunu belirtir. Sınıfların ve yapıların aksine, bir gövde olmadan erişimcileri bildirmek otomatik olarak uygulanan bir özellik bildirmez. Arabirim, özellikler de dahil olmak üzere üyeler için varsayılan bir uygulama tanımlayabilir. Arabirimler örnek veri alanlarını tanımlayamadığından, arabirimdeki bir özellik için varsayılan bir uygulama tanımlamak nadirdir.

Örnek

Bu örnekte, arabiriminin IEmployee bir read-write özelliği Nameve salt okunur özelliği Countervardır. sınıfı Employee arabirimini IEmployee uygular ve bu iki özelliği kullanır. Program, yeni bir çalışanın adını ve geçerli çalışan sayısını okur ve çalışan adını ve hesaplanan çalışan numarasını görüntüler.

Üyenin bildirildiği arabirime başvuran özelliğin tam adını kullanabilirsiniz. Örneğin:

string IEmployee.Name
{
    get { return "Employee Name"; }
    set { }
}

Yukarıdaki örnekte Açık Arabirim Uygulaması gösterilmektedir. Örneğin, sınıfı Employee iki arabirim uyguluyorsa ve IEmployee her iki arabirim ICitizen de özelliğine Name sahipse, açık arabirim üyesi uygulaması gerekli olacaktır. Yani, aşağıdaki özellik bildirimi:

string IEmployee.Name
{
    get { return "Employee Name"; }
    set { }
}

arabiriminde NameIEmployee özelliğini uygularken aşağıdaki bildirimi uygular:

string ICitizen.Name
{
    get { return "Citizen Name"; }
    set { }
}

arabiriminde NameICitizen özelliğini uygular.

interface IEmployee
{
    string Name
    {
        get;
        set;
    }

    int Counter
    {
        get;
    }
}

public class Employee : IEmployee
{
    public static int numberOfEmployees;

    private string _name;
    public string Name  // read-write instance property
    {
        get => _name;
        set => _name = value;
    }

    private int _counter;
    public int Counter  // read-only instance property
    {
        get => _counter;
    }

    // constructor
    public Employee() => _counter = ++numberOfEmployees;
}
System.Console.Write("Enter number of employees: ");
Employee.numberOfEmployees = int.Parse(System.Console.ReadLine());

Employee e1 = new Employee();
System.Console.Write("Enter the name of the new employee: ");
e1.Name = System.Console.ReadLine();

System.Console.WriteLine("The employee information:");
System.Console.WriteLine("Employee number: {0}", e1.Counter);
System.Console.WriteLine("Employee name: {0}", e1.Name);

Örnek çıktı

Enter number of employees: 210
Enter the name of the new employee: Hazem Abolrous
The employee information:
Employee number: 211
Employee name: Hazem Abolrous

Ayrıca bkz.