Menguasai Properti C#: Panduan Lengkap
Properti adalah anggota bernama dari kelas, struktur, dan antarmuka. Variabel anggota atau metode dalam kelas atau struktur disebut Fields. Properti adalah ekstensi dari bidang dan diakses menggunakan sintaks yang sama. Mereka menggunakan accessors melalui mana nilai bidang privat dapat dibaca, ditulis, atau dimanipulasi.
Properti tidak menentukan lokasi penyimpanan. Sebaliknya, mereka memiliki accessors yang membaca, menulis, atau menghitung nilai mereka.
Contohnya, mari kita miliki kelas bernama Student, dengan bidang privat untuk usia, nama, dan kode. Kita tidak dapat mengakses bidang ini secara langsung dari luar lingkup kelas, tetapi kita dapat memiliki properti untuk mengakses bidang privat ini.
Accessors
Accessor dari properti berisi pernyataan eksekusi yang membantu dalam mendapatkan (membaca atau menghitung) atau menetapkan (menulis) properti. Deklarasi accessor dapat berisi get accessor, set accessor, atau keduanya. Contohnya:
// Declare a Code property of type string: public string Code { get { return code; } set { code = value; } } // Declare a Name property of type string: public string Name { get { return name; } set { name = value; } } // Declare a Age property of type int: public int Age { get { return age; } set { age = value; } } Contoh
Contoh berikut menunjukkan penggunaan properti:
Live Demo
using System; namespace tutorialspoint { class Student { private string code = "N.A"; private string name = "not known"; private int age = 0; // Declare a Code property of type string: public string Code { get { return code; } set { code = value; } } // Declare a Name property of type string: public string Name { get { return name; } set { name = value; } } // Declare a Age property of type int: public int Age { get { return age; } set { age = value; } } public override string ToString() { return "Code = " + Code +", Name = " + Name + ", Age = " + Age; } } class ExampleDemo { public static void Main() { // Create a new Student object: Student s = new Student(); // Setting code, name and the age of the student s.Code = "001"; s.Name = "Zara"; s.Age = 9; Console.WriteLine("Student Info: {0}", s); //let us increase age s.Age += 1; Console.WriteLine("Student Info: {0}", s); Console.ReadKey(); } } } Ketika kode di atas dikompilasi dan dieksekusi, hasilnya adalah:
Student Info: Code = 001, Name = Zara, Age = 9 Student Info: Code = 001, Name = Zara, Age = 10
Properti Abstrak
Kelas abstrak dapat memiliki properti abstrak, yang harus diimplementasikan dalam kelas turunan. Program berikut menggambarkan hal ini:
Live Demo
using System; namespace tutorialspoint { public abstract class Person { public abstract string Name { get; set; } public abstract int Age { get; set; } } class Student : Person { private string code = "N.A"; private string name = "N.A"; private int age = 0; // Declare a Code property of type string: public string Code { get { return code; } set { code = value; } } // Declare a Name property of type string: public override string Name { get { return name; } set { name = value; } } // Declare a Age property of type int: public override int Age { get { return age; } set { age = value; } } public override string ToString() { return "Code = " + Code +", Name = " + Name + ", Age = " + Age; } } class ExampleDemo { public static void Main() { // Create a new Student object: Student s = new Student(); // Setting code, name and the age of the student s.Code = "001"; s.Name = "Zara"; s.Age = 9; Console.WriteLine("Student Info:- {0}", s); //let us increase age s.Age += 1; Console.WriteLine("Student Info:- {0}", s); Console.ReadKey(); } } } Ketika kode di atas dikompilasi dan dieksekusi, hasilnya adalah:
Student Info: Code = 001, Name = Zara, Age = 9 Student Info: Code = 001, Name = Zara, Age = 10