Properti Antarmuka (Panduan Pemrograman C#)

Properti dapat dideklarasikan pada antarmuka. Contoh berikut mendeklarasikan pengakses properti antarmuka:

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

Properti antarmuka biasanya tidak memiliki isi. Pengakses menunjukkan apakah properti tersebut baca-tulis, baca-saja, atau tulis-saja. Tidak seperti di kelas dan struct, mendeklarasikan pengakses tanpa isi tidak mendeklarasikan properti yang diterapkan secara otomatis. Antarmuka dapat menentukan implementasi default untuk anggota, termasuk properti. Menentukan penerapan default untuk properti di antarmuka jarang terjadi karena antarmuka mungkin tidak menentukan bidang data instans.

Contoh

Dalam contoh ini, antarmuka IEmployee memiliki properti baca-tulis, Name, dan properti baca-saja, Counter. Kelas Employee menerapkan antarmuka IEmployee dan menggunakan dua properti ini. Program membaca nama karyawan baru dan jumlah karyawan saat ini dan menampilkan nama karyawan serta nomor karyawan yang dihitung.

Anda dapat menggunakan nama properti yang sepenuhnya memenuhi syarat, yang merujuk pada antarmuka tempat anggota dideklarasikan. Contohnya:

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

Contoh sebelumnya menunjukkan Penerapan Antarmuka Eksplisit. Misalnya, jika kelas Employee menerapkan dua antarmuka ICitizen serta IEmployee dan kedua antarmuka memiliki properti Name, penerapan anggota antarmuka eksplisit akan diperlukan. Yaitu, deklarasi properti berikut:

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

menerapkan properti Name pada antarmuka IEmployee, sedangkan deklarasi berikut:

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

menerapkan properti Name pada antarmuka ICitizen.

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

Sampel output

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

Lihat juga