0Pricing
C# Academy · Ders

Otomatik Uygulanan Özellikler

Özellikleri kısa otomatik söz dizimiyle bildirin.

Otomatik Uygulanan Özellikler, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 1. 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.

Özellik Nedir?

Özellik, dışarıdan bir alan gibi görünür ancak erişimci yöntemler (get ve set) tarafından desteklenir. Özellikler, okunma ve yazılma biçimini denetlerken verileri kullanıma sunmanızı sağlar.

using System;

class Program
{
    public string Name { get; set; }

    static void Main()
    {
        var p = new Program();
        p.Name = "Coddy";
        Console.WriteLine(p.Name);
    }
}

Otomatik Uygulanan Özellik Sözdizimi

Otomatik uygulanan özellik, { get; set; } sözdizimini kullanır. Derleyici, sizin için gizli bir destek alanı oluşturur; böylece bunu elle yazmanız gerekmez.

using System;

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

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

Alanlar Yerine Neden Özellikler Kullanılır?

Herkese açık özellikler, kararlı bir programlama arayüzü sağlar. Daha sonra çağıran kodu bozmadan doğrulama ekleyebilir veya verilerin saklanma biçimini değiştirebilirsiniz. Herkese açık alanlar bunu yapamaz.

using System;

class Account
{
    public decimal Balance { get; set; }
}

class Program
{
    static void Main()
    {
        var a = new Account();
        a.Balance = 100.50m;
        Console.WriteLine("Balance: " + a.Balance);
    }
}

Salt Okunur Otomatik Özellikler

Bir özelliği salt okunur yapmak için set erişimcisini çıkarın. Özelliğe yalnızca oluşturucuda veya bir başlatıcı aracılığıyla değer atanabilir; böylece değerler varsayılan olarak değişmez olur.

using System;

class Circle
{
    public double Radius { get; }

    public Circle(double radius)
    {
        Radius = radius;
    }
}

class Program
{
    static void Main()
    {
        var c = new Circle(5.0);
        Console.WriteLine("Radius: " + c.Radius);
    }
}

Varsayılan Özellik Değerleri

Bir otomatik özelliğe = value; ile başlangıç değeri verebilirsiniz. Bu işlem, oluşturucu gövdesinden önce nesne oluşturulurken gerçekleştirilir.

using System;

class Settings
{
    public bool DarkMode { get; set; } = true;
    public int Volume { get; set; } = 50;
}

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

Özel Ayarlama Erişimcileri

private set, sınıfın değeri içeriden değiştirmesine izin verirken dış kodun değeri değiştirmesini engeller. Bu, yaygın bir kapsülleme kalıbıdır.

using System;

class Counter
{
    public int Count { get; private set; }

    public void Increment()
    {
        Count++;
    }
}

class Program
{
    static void Main()
    {
        var counter = new Counter();
        counter.Increment();
        counter.Increment();
        Console.WriteLine("Count: " + counter.Count);
    }
}

Yalnızca Başlatmada Ayarlanan Erişimciler

init erişimcisi (C# 9+), yalnızca nesne başlatılırken değer atanmasına izin verir. Oluşturma tamamlandıktan sonra değer kilitlenir.

using System;

class Product
{
    public string Name { get; init; }
    public decimal Price { get; init; }
}

class Program
{
    static void Main()
    {
        var p = new Product { Name = "Book", Price = 12.99m };
        Console.WriteLine(p.Name + ": " + p.Price);
    }
}

Farklı Erişim Düzeylerinde Özellikler

Özellikler, normal erişim belirleyicilerini izler. Düzeyleri karıştırabilirsiniz: özel ayarlayıcılı herkese açık bir alıcı veya tamamen sınıf içi bir özellik kullanabilirsiniz.

using System;

class User
{
    public string Id { get; private set; }

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

class Program
{
    static void Main()
    {
        var u = new User("u-001");
        Console.WriteLine("User Id: " + u.Id);
    }
}

Hesaplanmış Görünümlü Otomatik Özellikler

Otomatik özellikler veri saklar; hesaplama yapmaz. Hesaplanan bir değere ihtiyacınız varsa, tam bir özellik kullanmanız gerekir; bunu daha sonra ele alacağız. Şimdilik otomatik özellikleri basit veri saklama olarak düşünün.

using System;

class Rectangle
{
    public double Width { get; set; }
    public double Height { get; set; }
}

class Program
{
    static void Main()
    {
        var r = new Rectangle { Width = 4, Height = 3 };
        double area = r.Width * r.Height;
        Console.WriteLine("Area: " + area);
    }
}

Otomatik Özellikleri Güncelleme

Değer atanabilen bir otomatik özelliği, tıpkı bir değişken gibi istediğiniz kadar okuyabilir ve yeniden atayabilirsiniz.

using System;

class Player
{
    public int Score { get; set; }
}

class Program
{
    static void Main()
    {
        var player = new Player();
        player.Score = 10;
        player.Score += 5;
        player.Score *= 2;
        Console.WriteLine("Score: " + player.Score);
    }
}

Hepsini Birleştirme

Tipik bir model sınıfı çoğunlukla otomatik özelliklerden oluşur: bazılarına değer atanabilir, bazıları yalnızca başlatmada ayarlanabilir, bazılarının da özel ayarlayıcıları vardır. Bu, sınıfı kısa ve anlaşılır tutar.

using System;

class BankAccount
{
    public string Owner { get; init; }
    public decimal Balance { get; private set; }

    public void Deposit(decimal amount)
    {
        Balance += amount;
    }
}

class Program
{
    static void Main()
    {
        var acct = new BankAccount { Owner = "Lin" };
        acct.Deposit(250m);
        Console.WriteLine(acct.Owner + ": " + acct.Balance);
    }
}

Kısa Sınama

Otomatik uygulanan özellikler konusundaki anlayışınızı sınayın.

Özet

Otomatik uygulanan özelliklerin, derleyici tarafından oluşturulan bir destek alanıyla birlikte { get; set; } sözdizimini kullandığını öğrendiniz. Çeşitleri arasında salt okunur { get; }, kontrollü değişiklik için private set ve yalnızca bir kez değer atanabilen değerler için init bulunur. Bunlar, bir sınıftaki verileri kullanıma sunmanın varsayılan yoludur.

using System;

class Demo
{
    public string A { get; set; } = "settable";
    public string B { get; } = "read-only";
    public string C { get; init; } = "init-only";
}

class Program
{
    static void Main()
    {
        var d = new Demo { C = "changed-at-init" };
        Console.WriteLine(d.A + ", " + d.B + ", " + d.C);
    }
}

Sıkça Sorulan Sorular

“Otomatik Uygulanan Özellikler” dersi ücretsiz mi?

Evet — “Otomatik Uygulanan Özellikler” 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.

“Otomatik Uygulanan Özellikler” dersinde ne öğreneceğim?

Özellikleri kısa otomatik söz dizimiyle bildirin. 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 1. dersidir.

“Otomatik Uygulanan Özellikler” 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. Otomatik Uygulanan Özellikler
  2. Yedek Alanlı Tam Özellikler
  3. İfade Gövdeli Üyeler
  4. Dizinleyiciler
← C# Academy Sayfasına Dön