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