C# Object Initializer (Nesna Başlatıcıları)

Bir object initializer (nesne başlatıcı), bir sınıf nesnesinin erişilebilir alanlarını (fields) ve özelliklerini (properties) başlatmanıza olanak tanır.

İlk olarak, üç özelliği (property) ve iki yapıcı metot (constructor) bulunan Person adında bir sınıf (class) tanımlayalım:

class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public byte Age { get; set; }

    public Person() 
    {
    }

    public Person(string firstName, string lastName)
    {
        FirstName = firstName;
        LastName = lastName;
    }
}

İkinci olarak, Person sınıfının yeni bir nesnesini oluşturalım (instance) ve Firstname, LastName ve Age özelliklerine (property) değerler atayalım:

var p1 = new Person();
p1.FirstName = "Fatih";
p1.LastName = "Alkan";
p1.Age = 36;

Ve başka bir Person nesnesi oluşturmak ve başlatmak için ikinci yapıcıyı (constructor) kullanalım:

var p2 = new Person("Beyazıt", "Alkan");
p2.Age = 22;

Yukarıda ki örneklerimiz C#’da klasik olarak kullandığımız nesne oluşturma ve çağırma operasyonlarıdır. C# 3.0 ile bizlere Object Initializer başlığı altında aşağıda örneklemelerini yaptığım nesne başlatıcılarını sunmuştur.

var p1 = new Person
{
    FirstName = "Fatih",
    LastName = "Alkan",
    Age = 36
};

Ayrıca, bir constructor’u bir Object Initializer (nesne başlatıcıyla) birleştirebilirsiniz.

var p1 = new Person("Beyazıt", "Alkan") { Age = 22 };

Aynı şekilde object initializer (nesne başlatıcılarını) koleksiyonlar (collections) ve dizi (array) gibi yapılarla da kullanabilirsiniz.

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir