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.