0Pricing
C# Academy · Ders

Nesne ve Koleksiyon Başlatıcıları

Özellikleri oluşturma sırasında kısa biçimde ayarlayın.

Nesne ve Koleksiyon Başlatıcıları, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 4 dersten oluşur.

Nesne Başlatıcısı Nedir

Bir nesne başlatıcısı, her birleşim için bir oluşturucu yazmadan, new işleminden hemen sonra { } içinde genel erişimli özellikleri veya alanları ayarlar.

using System;

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        var p = new Person { Name = "Ada", Age = 36 };
        Console.WriteLine(p.Name + ", " + p.Age);
    }
}

Başlatıcı Sözdizimi

Özellik atamalarını süslü ayraçların içinde virgüllerle ayırarak listeleyin. Bunlar oluşturucu tamamlandıktan sonra çalışır.

using System;

class Car
{
    public string Make { get; set; }
    public string Model { get; set; }
    public int Year { get; set; }
}

class Program
{
    static void Main()
    {
        var car = new Car
        {
            Make = "Toyota",
            Model = "Corolla",
            Year = 2022
        };
        Console.WriteLine(car.Year + " " + car.Make + " " + car.Model);
    }
}

Oluşturucu ile Başlatıcıyı Birleştirme

Bir oluşturucuyu çağırabilir AND bir başlatıcı kullanabilirsiniz. Önce oluşturucu çalışır, ardından başlatıcı listelenen özelliklere değer atar.

using System;

class Widget
{
    public string Id { get; }
    public string Label { get; set; }

    public Widget(string id) { Id = id; }
}

class Program
{
    static void Main()
    {
        var w = new Widget("w1") { Label = "Submit" };
        Console.WriteLine(w.Id + ": " + w.Label);
    }
}

Yalnızca Bazı Özellikleri Başlatma

Yalnızca önem verdiğiniz özellikleri listelersiniz; diğerleri varsayılan değerlerini korur. Bu, başlatıcıları esnek hâle getirir.

using System;

class Settings
{
    public bool DarkMode { get; set; } = false;
    public int Volume { get; set; } = 50;
    public string Lang { get; set; } = "en";
}

class Program
{
    static void Main()
    {
        var s = new Settings { DarkMode = true };
        Console.WriteLine(s.DarkMode + ", " + s.Volume + ", " + s.Lang);
    }
}

Koleksiyon Başlatıcıları

Bir koleksiyon başlatıcısı, oluşturma sırasında virgülle ayrılmış öğeler içeren { } kullanarak bir listeyi, kümeyi veya diziyi doldurur.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var nums = new List<int> { 1, 2, 3, 4, 5 };
        Console.WriteLine("Count: " + nums.Count);
        Console.WriteLine("Sum: " + Sum(nums));
    }

    static int Sum(List<int> list)
    {
        int t = 0;
        foreach (var n in list) t += n;
        return t;
    }
}

Koleksiyon Başlatıcıları Nasıl Çalışır

Derleyici, her öğeyi bir Add(...) çağrısına dönüştürür. Add yöntemine sahip olan ve IEnumerable destekleyen her tür bu sözdizimini kullanabilir.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var names = new List<string> { "Ann", "Bob", "Cara" };
        foreach (var n in names)
            Console.WriteLine(n);
    }
}

Sözlük Başlatıcıları

Sözlükler, arama tabloları için oldukça kullanışlı olan anahtar/değer çiftleriyle süslü ayraçların içinde başlatılabilir.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var ages = new Dictionary<string, int>
        {
            ["Ann"] = 30,
            ["Bob"] = 25
        };
        Console.WriteLine("Ann is " + ages["Ann"]);
    }
}

İç İçe Nesne Başlatıcıları

Bir nesne başlatıcısı, iç içe nesneleri başlatarak tek bir ifade içinde küçük bir nesne grafiği oluşturabilir.

using System;

class Address
{
    public string City { get; set; }
}

class Customer
{
    public string Name { get; set; }
    public Address Home { get; set; } = new Address();
}

class Program
{
    static void Main()
    {
        var c = new Customer
        {
            Name = "Lin",
            Home = new Address { City = "Tokyo" }
        };
        Console.WriteLine(c.Name + " in " + c.Home.City);
    }
}

Nesne Koleksiyonları

Her iki özelliği birleştirin: öğeleri kendileri de nesne başlatıcılarıyla oluşturulan bir liste başlatın.

using System;
using System.Collections.Generic;

class Item
{
    public string Name { get; set; }
    public decimal Price { get; set; }
}

class Program
{
    static void Main()
    {
        var cart = new List<Item>
        {
            new Item { Name = "Pen", Price = 1.5m },
            new Item { Name = "Book", Price = 9.0m }
        };
        decimal total = 0;
        foreach (var i in cart) total += i.Price;
        Console.WriteLine("Total: " + total);
    }
}

Başlatıcılar ve Başlatma Özellikleri

Nesne başlatıcıları, yalnızca init ile ayarlanabilen özellikleri belirlemenin yoludur; çünkü bu özelliklere yalnızca başlatma sırasında değer atanabilir.

using System;

class Config
{
    public string Env { get; init; }
    public int Retries { get; init; }
}

class Program
{
    static void Main()
    {
        var c = new Config { Env = "prod", Retries = 3 };
        Console.WriteLine(c.Env + " / " + c.Retries);
    }
}

Hepsini Birleştirme

Başlatıcılar, özellikle yapılandırma nesneleri ve sınama verileri için oluşturma işlemini bildirime dayalı ve okunabilir hâle getirir.

using System;
using System.Collections.Generic;

class Team
{
    public string Name { get; set; }
    public List<string> Members { get; set; } = new List<string>();
}

class Program
{
    static void Main()
    {
        var t = new Team
        {
            Name = "Alpha",
            Members = { "Ann", "Bob", "Cara" }
        };
        Console.WriteLine(t.Name + " has " + t.Members.Count + " members");
    }
}

Hızlı Kontrol

Başlatıcılar hakkındaki anlayışınızı sınayın.

Özet

Nesne başlatıcıları, new işleminden sonra { } içinde genel erişimli üyelere değer atar ve oluşturucudan sonra çalışır. Koleksiyon başlatıcıları, örtük Add çağrılarıyla öğeler ekler; sözlükler de anahtar/değer çiftlerini destekler. Her ikisi de iç içe kullanılabilir, init özellikleriyle çalışır ve oluşturma işlemini kısa ve bildirime dayalı hâle getirir.

using System;
using System.Collections.Generic;

class Demo
{
    public string Name { get; set; }
    public List<int> Nums { get; set; } = new List<int>();
}

class Program
{
    static void Main()
    {
        var d = new Demo { Name = "x", Nums = { 1, 2, 3 } };
        Console.WriteLine(d.Name + " " + d.Nums.Count);
    }
}

Sıkça Sorulan Sorular

“Nesne ve Koleksiyon Başlatıcıları” dersi ücretsiz mi?

Evet — “Nesne ve Koleksiyon Başlatıcıları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 4 dersten oluşur.

“Nesne ve Koleksiyon Başlatıcıları” dersinde ne öğreneceğim?

Özellikleri oluşturma sırasında kısa biçimde ayarlayın. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C# Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Nesne ve Koleksiyon Başlatıcıları” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Oluşturucuları Tanımlama
  2. this ile Oluşturucu Zincirleme
  3. Nesne ve Koleksiyon Başlatıcıları
  4. Statik Oluşturucular
← C# Academy Sayfasına Dön