Aracılığıyla paylaş


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

Belirteç =>, iki biçimde desteklenir: lambda işleci olarak ve bir ifade gövdesi tanımında bir üye adı ile üye uygulaması arasında bir ayırıcı 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. expression'nin dönüş türü, üye fonksiyonunun dönüş türüne örtük olarak dönüştürülebilir olmalıdır. Üye:

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

expression bir deyim ifadesi olmalıdır. İfade sonucunun göz ardı edilmesi nedeniyle, 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# dil belirtimi

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

Ayrıca bakınız