Menu
Coddy logo textTech

Otomatik Uygulanan Özellikler

Coddy'nin C# Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 10 / 70.

Otomatik uygulanan özellikler (Auto-implemented properties), açıkça destekleyici alanlar (backing fields) yazmadan özellikler tanımlamanıza olanak tanır. Derleyici, arka planda otomatik olarak gizli bir özel alan oluşturur.

Bu ayrıntılı kodu yazmak yerine:

public class Product
{
    private string name;
    
    public string Name
    {
        get { return name; }
        set { name = value; }
    }
}

Basitçe şöyle yazabilirsiniz:

public class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
    public int Quantity { get; set; }
}

Varsayılan değerleri doğrudan bildirim içinde de ayarlayabilirsiniz:

public class Product
{
    public string Name { get; set; } = "Unnamed";
    public decimal Price { get; set; } = 0.0m;
    public bool IsAvailable { get; set; } = true;
}

Otomatik uygulanan özellikler (auto-implemented properties), getter veya setter içerisinde doğrulamaya veya özel bir mantığa ihtiyaç duymadığınız durumlarda idealdir. Sınıflarınızı temiz tutarlar ve boilerplate kod miktarını önemli ölçüde azaltırlar.

challenge icon

Görev

Kolay

Bir mağazadaki ürünleri takip etmek için otomatik uygulanan özellikleri (auto-implemented properties) kullanarak basit bir envanter sistemi oluşturalım.

Kodunuzu düzenlemek için iki dosya oluşturacaksınız:

  • Item.cs: Inventory ad alanı (namespace) içinde Name (string), Price (decimal) ve InStock (bool) için otomatik uygulanan özelliklere sahip bir Item sınıfı tanımlayın. Varsayılan değerleri ayarlayın: Name varsayılan olarak "Unknown", Price 0.0m ve InStock true olmalıdır.
  • Program.cs: Ana dosyanızda, nesne başlatıcılarını (object initializers) kullanarak iki Item nesnesi oluşturun. Her bir ürün için isim ve fiyatı girdiden okuyun, ardından her ürünün detaylarını yazdırın.

Dört girdi alacaksınız:

  • İlk ürünün adı
  • İlk ürünün fiyatı
  • İkinci ürünün adı
  • İkinci ürünün fiyatı

Her ürünü şu formatta yazdırın:

Item: {Name}, Price: {Price}, In Stock: {InStock}

Örneğin, girdiler Laptop, 999.99, Mouse ve 25.50 ise, çıktı şöyle olmalıdır:

Item: Laptop, Price: 999.99, In Stock: True
Item: Mouse, Price: 25.50, In Stock: True

Kopya kağıdı

Otomatik uygulanan özellikler (Auto-implemented properties), açıkça yedek alanlar (backing fields) yazmadan özellikler tanımlamanıza olanak tanır. Derleyici otomatik olarak gizli bir özel alan oluşturur.

Temel sözdizimi:

public class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
    public int Quantity { get; set; }
}

Varsayılan değerleri ayarlama:

public class Product
{
    public string Name { get; set; } = "Unnamed";
    public decimal Price { get; set; } = 0.0m;
    public bool IsAvailable { get; set; } = true;
}

Otomatik uygulanan özellikler, getter veya setter içinde doğrulamaya veya özel bir mantığa ihtiyaç duymadığınızda idealdir.

Kendin dene

using System;
using Inventory;

class Program
{
    public static void Main(string[] args)
    {
        // İlk öğe için girişleri oku
        string name1 = Console.ReadLine();
        decimal price1 = Convert.ToDecimal(Console.ReadLine());
        
        // İkinci öğe için girişleri oku
        string name2 = Console.ReadLine();
        decimal price2 = Convert.ToDecimal(Console.ReadLine());
        
        // TODO: Nesne başlatıcılarını (object initializers) kullanarak iki Item nesnesi oluşturun
        // Giriş değerlerinden Name ve Price özelliklerini ayarlayın
        
        // TODO: Her bir öğenin ayrıntılarını şu formatta yazdırın:
        // Item: {Name}, Price: {Price}, In Stock: {InStock}
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler