Nesne başlatma
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
-
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
-
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.
-
Nesne başlatıcıyı tamamla
Book b = new Book { Title = ____ };Cevabı göster
Book b = new Book { Title = "Sefiller" };