Expression-Bodied Members¶
Expression-bodied members, C# dilinde kısa ve öz kod yazmayı sağlar. Ancak, yanlış kullanım durumları kodun okunabilirliğini ve sürdürülebilirliğini etkileyebilir.
1. Gereksiz Yerine Getirme Yöntemleri¶
❌ Yanlış Kullanım: Basit dönüşleri tam metot gövdesiyle yazmak.
public string GetName()
{
return "Murat";
}
✅ İdeal Kullanım: Expression-bodied members ile metotları sadeleştirin.
public string GetName() => "Murat";
2. Karmaşık İfadeleri Expression-Bodied Members ile Yazmak¶
❌ Yanlış Kullanım: Çok satırlı ifadeleri tek bir expression-bodied member ile yazmak.
public string GetFullName(string firstName, string lastName) =>
$"{firstName} {lastName}".ToUpper() + $" Length: {firstName.Length + lastName.Length}";
✅ İdeal Kullanım: Karmaşık ifadeleri birden fazla satırda açıkça yazın.
public string GetFullName(string firstName, string lastName)
{
var fullName = $"{firstName} {lastName}";
return $"{fullName.ToUpper()} Length: {fullName.Length}";
}
3. Kapsamlı Property Gövdeleri Kullanmak¶
❌ Yanlış Kullanım: Property’ler için tam gövde kullanmak.
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
✅ İdeal Kullanım: Expression-bodied members ile property’leri kısaltın.
public string Name { get; set; }
4. Exception Fırlatma İşlemlerinde Expression-Bodied Kullanımı¶
❌ Yanlış Kullanım: Exception fırlatma işlemlerini expression-bodied members ile karmaşık hale getirmek.
public string Name => throw new ArgumentNullException(nameof(Name), "Name is required.");
✅ İdeal Kullanım: Exception işlemlerini açık bir şekilde yazın.
public string Name
{
get => throw new ArgumentNullException(nameof(Name), "Name is required.");
}
5. Constructor’larda Expression-Bodied Kullanımını Yanlış Yapmak¶
❌ Yanlış Kullanım: Constructor’ları gereksiz yere expression-bodied olarak yazmak.
public Person(string name) => Name = name ?? throw new ArgumentNullException(nameof(name));
✅ İdeal Kullanım: Constructor’larda expression-bodied kullanımını sade tutun.
public Person(string name)
{
Name = name ?? throw new ArgumentNullException(nameof(name));
}
6. Basit İşlemleri Açık Gövdelerle Yazmak¶
❌ Yanlış Kullanım: Basit property’ler için tam metot gövdesi kullanmak.
public string Description
{
get { return "A short description."; }
}
✅ İdeal Kullanım: Expression-bodied members ile basit işlemleri optimize edin.
public string Description => "A short description.";