İfade gövdeli üyeler (C# programlama kılavuzu)

İfade gövdesi tanımları, bir üyenin uygulamasını çok kısa ve okunabilir bir biçimde sağlamanıza olanak sağlar. Yöntem veya özellik gibi desteklenen herhangi bir üyenin mantığı tek bir ifadeden oluştuğunda ifade gövdesi tanımını kullanabilirsiniz. İfade gövdesi tanımı aşağıdaki genel söz dizimine sahiptir:

member => expression;

burada ifadesi geçerli bir ifadedir.

C# 6'daki yöntemler ve salt okunur özellikler için ifade gövdesi tanımları desteği sunulmuştur ve C# 7.0'da genişletilmiştir. İfade gövdesi tanımları, aşağıdaki tabloda listelenen tür üyeleriyle kullanılabilir:

Üye Şu anda destekleniyor...
Yöntem C# 6
Salt okunur özellik C# 6
Özellik C# 7.0
Oluşturucu C# 7.0
Sonlandırıcıyı C# 7.0
Dizin Oluşturucu C# 7.0

Yöntemler

İfade gövdeli yöntem, türü yöntemin dönüş türüyle eşleşen bir değer döndüren veya döndüren voidyöntemler için bazı işlemler gerçekleştiren tek bir ifadeden oluşur. Örneğin, yöntemini geçersiz kılan ToString türler genellikle geçerli nesnenin dize gösterimini döndüren tek bir ifade içerir.

Aşağıdaki örnek, bir ifade gövdesi tanımıyla yöntemini geçersiz kılan ToString bir sınıf tanımlarPerson. Ayrıca konsola bir DisplayName ad görüntüleyen bir yöntem tanımlar. Anahtar sözcüğün return ifade gövdesi tanımında ToString kullanılmadığını unutmayın.

using System;

public class Person
{
   public Person(string firstName, string lastName)
   {
      fname = firstName;
      lname = lastName;
   }

   private string fname;
   private string lname;

   public override string ToString() => $"{fname} {lname}".Trim();
   public void DisplayName() => Console.WriteLine(ToString());
}

class Example
{
   static void Main()
   {
      Person p = new Person("Mandy", "Dejesus");
      Console.WriteLine(p);
      p.DisplayName();
   }
}

Daha fazla bilgi için bkz. Yöntemler (C# Programlama Kılavuzu).

Salt okunur özellikler

C# 6'dan başlayarak, salt okunur bir özellik uygulamak için ifade gövdesi tanımını kullanabilirsiniz. Bunu yapmak için aşağıdaki söz dizimini kullanın:

PropertyType PropertyName => expression;

Aşağıdaki örnek, salt okunur Name özelliği özel locationName alanın değerini döndüren bir ifade gövdesi tanımı olarak uygulanan bir sınıfı tanımlarLocation:

public class Location
{
   private string locationName;

   public Location(string name)
   {
      locationName = name;
   }

   public string Name => locationName;
}

Özellikler hakkında daha fazla bilgi için bkz . Özellikler (C# Programlama Kılavuzu).

Özellikler

C# 7.0'dan başlayarak, özellik get ve set erişimcileri uygulamak için ifade gövdesi tanımlarını kullanabilirsiniz. Aşağıdaki örnek bunun nasıl yapılacağını gösterir:

public class Location
{
   private string locationName;

   public Location(string name) => Name = name;

   public string Name
   {
      get => locationName;
      set => locationName = value;
   }
}

Özellikler hakkında daha fazla bilgi için bkz . Özellikler (C# Programlama Kılavuzu).

Oluşturucular

Bir oluşturucunun ifade gövdesi tanımı genellikle tek bir atama ifadesini veya oluşturucunun bağımsız değişkenlerini işleyen veya örnek durumunu başlatan bir yöntem çağrısından oluşur.

Aşağıdaki örnek, oluşturucusunun name adlı tek bir dize parametresine sahip olan bir sınıfı tanımlarLocation. İfade gövdesi tanımı, bağımsız değişkeni özelliğine Name atar.

public class Location
{
   private string locationName;

   public Location(string name) => Name = name;

   public string Name
   {
      get => locationName;
      set => locationName = value;
   }
}

Daha fazla bilgi için bkz . Oluşturucular (C# Programlama Kılavuzu).

Sonlandırıcılar

Sonlandırıcı için ifade gövdesi tanımı genellikle yönetilmeyen kaynakları serbest bırakan deyimler gibi temizleme deyimleri içerir.

Aşağıdaki örnek, sonlandırıcının çağrıldığını belirtmek için ifade gövdesi tanımını kullanan bir sonlandırıcı tanımlar.

public class Destroyer
{
   public override string ToString() => GetType().Name;

   ~Destroyer() => Console.WriteLine($"The {ToString()} finalizer is executing.");
}

Daha fazla bilgi için bkz . Sonlandırıcılar (C# Programlama Kılavuzu).

Dizin Oluşturucular

Özelliklerde olduğu gibi, erişimci ve erişimci bir değer döndüren tek bir ifadeden oluşuyorsa get veya erişimci basit bir atama gerçekleştiriyorsa, dizin oluşturucu get ve setset erişimciler ifade gövdesi tanımlarından oluşur.

Aşağıdaki örnek, bir dizi sporun adını içeren bir iç String dizi içeren adlı Sports sınıfı tanımlar. Hem dizin oluşturucu get hem set de erişimci ifade gövdesi tanımları olarak uygulanır.

using System;
using System.Collections.Generic;

public class Sports
{
   private string[] types = { "Baseball", "Basketball", "Football",
                              "Hockey", "Soccer", "Tennis",
                              "Volleyball" };

   public string this[int i]
   {
      get => types[i];
      set => types[i] = value;
   }
}

Daha fazla bilgi için bkz. Dizin Oluşturucular (C# Programlama Kılavuzu).

Ayrıca bkz.