Declare dan Gunakan Read Write Properties C#


Properti memberi kenyamanan kepada member data public tanpa risiko yang datang dengan akses tanpa pelindung, tidak terkontrol, dan tidak terverifikasi ke data objek. Hal ini dilakukan melalui accessors: metod khusus yang menetapkan dan mengambil nilai dari member data yang mendasarinya. Accessor set memungkinkan member data ditugaskan, dan mendapatkan aksesor mengambil nilai member data. Sampel ini menunjukkan class Person yang memiliki dua properti: Name (string) dan Age (int). Kedua properti menyediakan dan mengatur aksesor, sehingga dianggap sebagai baca / tulis properti.
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;
    }
}

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 - {0}", person);

        // Set some values on the person object:
        person.Name = "Joe";
        person.Age = 99;
        Console.WriteLine("Person details - {0}", person);

        // Increment the Age property:
        person.Age += 1;
        Console.WriteLine("Person details - {0}", 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
*/
Robust Programming
Pada contoh sebelumnya, properti Name dan Age bersifat publik dan mencakup keduanya dan satu set accessor. Hal ini memungkinkan setiap objek untuk read dan write properti. Terkadang diinginkan untuk mengecualikan salah satu accessors. Dengan mengabaikan accessor yang diset, misalnya, membuat properti hanya bisa read-only:

public string Name
{
    get
    {
        return name;
    }
}
Setelah properti dideclared, mereka dapat digunakan seolah-olah mereka adalah field class. Ini memungkinkan sintaks yang sangat alami saat mendapatkan dan menetapkan nilai properti, seperti dalam pernyataan berikut:
person.Name = "Joe";
person.Age = 99;
Perhatikan bahwa dalam metod set properti, variabel nilai khusus tersedia. Variabel contains berisi nilai yang ditentukan pengguna, misalnya:
name = value;
Perhatikan sintaks untuk menambahkan properti Age pada objek Person:
person.Age += 1;
Jika set terpisah dan get metod yang digunakan untuk memodelkan properti, Code equivalent terlihat seperti ini:
person.SetAge(person.GetAge() + 1);   
Metod ToString dioverride 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 dipanggil oleh WriteLine.
Previous
Next Post »