CodeBlanks Logo Icon CodeBlanks

Nesne başlatma

C# kursu · Orta seviye · Ders 5/116

Object initializer sözdizimi ile nesneleri kısa yoldan başlatmayı öğrenirsin.

Nesne başlatıcı (object initializer)

Bir nesne oluşturduktan sonra özellikleri tek tek atamak yerine, nesne başlatıcı ile tek satırda yazabilirsin: new Book { Title = "Sefiller", Pages = 1462 }.

Burada new Book() önce yapıcı metodu çağırır, sonra süslü parantez içindeki her atama özelliğe uygulanır. Birden çok özellik virgülle ayrılır. Kod daha kısa ve okunaklı olur. Aynı sözdizimini koleksiyonlar için de kullanabilirsin.

Koleksiyon başlatıcı

Benzer sözdizimi koleksiyonlar için de çalışır. new List<string> { "elma", "armut", "kiraz" } ifadesi yeni bir liste üretir ve üç öğeyi ekler.

Süslü parantez içindeki her öğe, koleksiyonun Add metoduna aktarılır. Bu, çoklu items.Add(...) çağrıları yazmaktan çok daha kısadır. Nesne başlatıcı ile koleksiyon başlatıcıyı birleştirebilirsin de: new Cart { Items = new List<string> { "kitap" } }.

Uygulama Nesne başlatıcı ile Book oluştur

Aşağıdaki Book sınıfı veriliyor. Main içinde nesne başlatıcı kullanarak Title = "Sefiller" ve Pages = 1462 olan bir örnek oluştur ve Title'ı yazdır.

Örnek çözümü göster
Book b = new Book { Title = "Sefiller", Pages = 1462 }; yaz. Sonra Console.WriteLine(b.Title); ekle.
Örnek çözüm:
using System;

class Book
{
    public string Title { get; set; }
    public int Pages { get; set; }
}

class Program
{
    static void Main()
    {
        Book b = new Book { Title = "Sefiller", Pages = 1462 };
        Console.WriteLine(b.Title);
    }
}

Kendini test et

  1. Başlatıcı parçasını amacına eşle

    new Book
    Örnek oluşturur
    { Title = "x" }
    Özellik atar
    =
    Değer bağlar
    }
    Başlatıcıyı kapatır
  2. Hangisi nesne başlatıcı sözdizimidir?

    • new Book().Title = "x";
    • new Book(Title="x")
    • new Book { Title = "x" }
    • new Book: Title = "x"
    Cevabı göster

    new Book { Title = "x" } — Doğru. new Tip { Özellik = değer } başlatıcı sözdizimidir.

  3. Nesne başlatıcıyı tamamla

    Book b = new Book { Title = ____ };
    Cevabı göster
    Book b = new Book { Title = "Sefiller" };

Orta seviye bölümündeki tüm dersler