Lambda ifadesi (=>) işleci bir lambda ifadesi tanımlar

Belirteç => iki biçimde desteklenir: lambda işleci olarak ve bir üye adının ayırıcısı olarak ve bir ifade gövdesi tanımında üye uygulaması olarak.

Lambda işleci

Lambda ifadelerinde lambda işleci => sol taraftaki giriş parametrelerini sağ taraftaki lambda gövdesinden ayırır.

Aşağıdaki örnek, lambda ifadelerinin kullanımını göstermek için yöntem söz dizimi ile LINQ özelliğini kullanır:

string[] words = { "bot", "apple", "apricot" };
int minimalLength = words
  .Where(w => w.StartsWith("a"))
  .Min(w => w.Length);
Console.WriteLine(minimalLength);   // output: 5

int[] numbers = { 4, 7, 10 };
int product = numbers.Aggregate(1, (interim, next) => interim * next);
Console.WriteLine(product);   // output: 280

Lambda ifadesinin giriş parametreleri derleme zamanında kesin olarak yazılır. Derleyici, önceki örnekte olduğu gibi giriş parametresi türlerini çıkarsayabildiğinde, tür bildirimlerini atlayabilirsiniz. Giriş parametrelerinin türünü belirtmeniz gerekiyorsa, aşağıdaki örnekte gösterildiği gibi her parametre için bunu yapmanız gerekir:

int[] numbers = { 4, 7, 10 };
int product = numbers.Aggregate(1, (int interim, int next) => interim * next);
Console.WriteLine(product);   // output: 280

Aşağıdaki örnekte giriş parametreleri olmadan lambda ifadesinin nasıl tanımlanacağı gösterilmektedir:

Func<string> greet = () => "Hello, World!";
Console.WriteLine(greet());

Daha fazla bilgi için bkz . Lambda ifadeleri.

İfade gövdesi tanımı

İfade gövdesi tanımı aşağıdaki genel söz dizimine sahiptir:

member => expression;

burada expression geçerli bir ifadedir. dönüş türü, üyenin expression dönüş türüne örtük olarak dönüştürülebilir olmalıdır. Üye:

  • void Dönüş türü veya
  • Şudur:
    • Oluşturucu
    • Sonlandırıcıyı
    • Özellik veya dizin oluşturucu erişimcisi set

expression bir deyim ifadesi olmalıdır. İfadenin sonucu atıldığından, bu ifadenin dönüş türü herhangi bir tür olabilir.

Aşağıdaki örnekte bir yöntem için Person.ToString ifade gövdesi tanımı gösterilmektedir:

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

Bu, aşağıdaki yöntem tanımının kısa bir sürümüdür:

public override string ToString()
{
   return $"{fname} {lname}".Trim();
}

Yöntemler, işleçler, salt okunur özellikler, oluşturucular, sonlandırıcılar ve özellik ve dizin oluşturucu erişimcileri için ifade gövdesi tanımları oluşturabilirsiniz. Daha fazla bilgi için bkz . İfade gövdeli üyeler.

İşleç aşırı yüklenebilirliği

İşleç => aşırı yüklenemez.

C# dili belirtimi

Lambda işleci hakkında daha fazla bilgi için C# dil belirtiminin Anonim işlev ifadeleri bölümüne bakın.

Ayrıca bkz.