Bagikan melalui


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 struktur, mendeklarasikan pengakses tanpa isi tidak mendeklarasikan properti yang diimplementasikan secara otomatis. Antarmuka dapat menentukan implementasi default untuk anggota, termasuk properti. Menentukan implementasi default untuk properti dalam antarmuka jarang terjadi karena antarmuka tidak dapat 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 mengimplementasikan dua antarmuka ICitizen dan IEmployee dan kedua antarmuka memiliki Name properti , implementasi anggota antarmuka eksplisit diperlukan. Yaitu, deklarasi properti berikut:

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

Name Menerapkan properti pada IEmployee antarmuka, sementara deklarasi berikut:

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

Name Mengimplementasikan properti pada ICitizen antarmuka.

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