Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Properti menawarkan kemudahan anggota data publik tanpa risiko yang terkait dengan akses ke data objek yang tidak terlindungi, tidak terkendali, dan tidak terverifikasi. Properti mendeklarasikan aksesor: metode khusus yang menetapkan dan mengambil nilai dari anggota data yang mendasarinya. Aksesor set memungkinkan anggota data ditetapkan, dan aksesor get mengambil nilai anggota data.
Sampel ini menunjukkan kelas Person
yang memiliki dua properti: Name
(string) dan Age
(int). Kedua properti menyediakan aksesor get
dan set
, sehingga dianggap sebagai properti baca/tulis.
Contoh
class Person
{
private string _name = "N/A";
private int _age = 0;
// Declare a Name property of type string:
public string Name
{
get
{
return _name;
}
set
{
_name = value;
}
}
// Declare an Age property of type int:
public int Age
{
get
{
return _age;
}
set
{
_age = value;
}
}
public override string ToString()
{
return "Name = " + Name + ", Age = " + Age;
}
}
public class Wrapper
{
private string _name = "N/A";
public string Name
{
get
{
return _name;
}
private set
{
_name = value;
}
}
}
class TestPerson
{
static void Main()
{
// Create a new Person object:
Person person = new Person();
// Print out the name and the age associated with the person:
Console.WriteLine($"Person details - {person}");
// Set some values on the person object:
person.Name = "Joe";
person.Age = 99;
Console.WriteLine($"Person details - {person}");
// Increment the Age property:
person.Age += 1;
Console.WriteLine($"Person details - {person}");
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
/* Output:
Person details - Name = N/A, Age = 0
Person details - Name = Joe, Age = 99
Person details - Name = Joe, Age = 100
*/
Pemrograman yang Kuat
Dalam contoh sebelumnya, properti Name
dan Age
bersifat publik dan menyertakan baik get
maupun aksesor set
. Aksesor publik memungkinkan objek apa pun untuk membaca dan menulis properti ini. Namun, terkadang lebih baik untuk mengecualikan salah satu aksesornya. Anda dapat menghapus aksesor set
untuk menjadikan properti hanya dapat dibaca.
public string Name
{
get
{
return _name;
}
private set
{
_name = value;
}
}
Atau, Anda dapat mengekspos satu aksesor secara publik tetapi membuat yang lain privat atau terlindungi. Untuk informasi selengkapnya, lihat Aksesibilitas Aksesor Asimetris.
Setelah properti dideklarasikan, properti dapat digunakan sebagai field dari kelas. Properti memungkinkan sintaksis alami saat mendapatkan dan mengatur nilai properti, seperti dalam pernyataan berikut:
person.Name = "Joe";
person.Age = 99;
Dalam metode properti set
, variabel khusus value
tersedia. Variabel ini berisi nilai yang ditentukan pengguna, misalnya:
_name = value;
Perhatikan sintaks yang rapi untuk meningkatkan properti Age
pada objek Person
.
person.Age += 1;
Jika terpisah set
dan get
metode digunakan untuk memodelkan properti, kode yang setara mungkin terlihat seperti ini:
person.SetAge(person.GetAge() + 1);
Metode ToString
didefinisikan ulang dalam contoh ini.
public override string ToString()
{
return "Name = " + Name + ", Age = " + Age;
}
Perhatikan bahwa ToString
tidak secara eksplisit digunakan dalam program. Ini dipanggil secara default oleh WriteLine
panggilan.