Menu
Coddy logo textTech

İfade Gövdeli Üyeler

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

İfade gövdeli üyeler, yalnızca tek bir ifade içeren üyeler için kısa ve öz bir söz dizimi sağlar. Süslü parantezlerle tam yöntem veya özellik gövdeleri yazmak yerine, => ok söz dizimini kullanırsınız.

Tek bir ifade döndüren metotlar için, gövdenin tamamını değiştirebilirsiniz:

// Geleneksel metot
public int Add(int a, int b)
{
    return a + b;
}

// İfade gövdeli metot
public int Add(int a, int b) => a + b;

Bu söz dizimi, daha önce kısaca gördüğün salt okunur özellikler için de çalışır:

public class Circle
{
    public double Radius { get; set; }
    public double Area => Math.PI * Radius * Radius;
    public double Circumference => 2 * Math.PI * Radius;
}

Ayrıca özellik alıcıları ve ayarlayıcıları için ifade gövdelerini ayrı ayrı da kullanabilirsiniz:

private string name;
public string Name
{
    get => name;
    set => name = value.Trim();
}

Tek bir ifade içerdiklerinde yapıcılar bile bu söz dizimini kullanabilir:

public class Person
{
    public string Name { get; }
    public Person(string name) => Name = name;
}

İfade gövdeli üyeler, mantık basit olduğunda kodunuzu daha okunabilir hâle getirir. Bunları basit işlemler için kullanın; ancak birden fazla ifadeye veya karmaşık mantığa ihtiyaç duyduğunuzda geleneksel gövdeleri tercih edin.

challenge icon

Görev

Kolay

Temiz ve kısa kod yazmak için ifade gövdeli üyelerin gücünü gösteren bir ürün fiyatlandırma hesaplayıcısı oluşturalım.

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

  • Product.cs: Product ad alanında bir Store sınıfı tanımlayın. Bu sınıf, çeşitli ifade gövdeli üyeleri göstermelidir:
    • Otomatik uygulanan bir Name (string) ve BasePrice (decimal) özelliği
    • Her iki özelliği ayarlayan ifade gövdeli bir oluşturucu
    • Taban fiyatın %10'unu hesaplayan ifade gövdeli salt okunur bir TaxAmount özelliği
    • Taban fiyat ile vergi tutarının toplamını döndüren ifade gövdeli salt okunur bir TotalPrice özelliği
    • İndirim tutarını (taban fiyat çarpı yüzde bölü 100) döndüren ifade gövdeli bir GetDiscount(decimal percentage) yöntemi
    • Toplam fiyattan indirimi çıkararak sonucu döndüren ifade gövdeli bir GetFinalPrice(decimal discountPercentage) yöntemi
  • Program.cs: Ana dosyanızda, girdi değerlerini kullanarak bir Product oluşturun ve ardından fiyat ayrıntılarını görüntüleyin.

Üç girdi alacaksınız:

  • Ürün adı
  • Taban fiyat
  • Uygulanacak indirim yüzdesi

Fiyatlandırma ayrıntılarını şu biçimde yazdırın:

Product: {Name}
Base Price: {BasePrice}
Tax (10%): {TaxAmount}
Total Price: {TotalPrice}
Discount ({percentage}%): {discountAmount}
Final Price: {finalPrice}

Örneğin girdiler Laptop, 1000 ve 15 ise çıktı şu şekilde olmalıdır:

Product: Laptop
Base Price: 1000.00
Tax (10%): 100.00
Total Price: 1100.00
Discount (15%): 150.00
Final Price: 950.00

Her parasal değeri tam olarak iki ondalık basamakla biçimlendirin; örneğin value.ToString("F2") veya $"{value:F2}". Bu kural taban fiyat, vergi, toplam, indirim ve son fiyatın tümü için geçerlidir.

Tek bir ifade içeren tüm üyeler için => ok söz dizimini kullanmayı unutmayın. Bu, kodunuzu temiz ve okunabilir tutar!

Kendin dene

using System;
using Store;

class Program
{
    public static void Main(string[] args)
    {
        // Girdileri oku
        string name = Console.ReadLine();
        decimal basePrice = Convert.ToDecimal(Console.ReadLine());
        decimal discountPercentage = Convert.ToDecimal(Console.ReadLine());

        // Girdi değerlerini kullanarak bir Product nesnesi oluştur
        Product product = new Product(name, basePrice);

        // GetDiscount metodunu kullanarak indirim tutarını hesapla
        decimal discountAmount = product.GetDiscount(discountPercentage);

        // GetFinalPrice metodunu kullanarak son fiyatı hesapla
        decimal finalPrice = product.GetFinalPrice(discountPercentage);

        // Fiyatlandırma detaylarını gerekli formatta yazdır:
        Console.WriteLine($"Product: {product.Name}");
        Console.WriteLine($"Base Price: {product.BasePrice:F2}");
        Console.WriteLine($"Tax (10%): {product.TaxAmount:F2}");
        Console.WriteLine($"Total Price: {product.TotalPrice:F2}");
        Console.WriteLine($"Discount ({discountPercentage}%): {discountAmount:F2}");
        Console.WriteLine($"Final Price: {finalPrice:F2}");
    }
}
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

Kendi başına pratik yap: Online C# derleyicisi