=> işleci (C# Başvurusu)
=>Belirteç iki biçimde desteklenir: lambda işleci , bir üye adı ayırıcı olarak ve bir ifade gövdesi tanımındaüye uygulama.
Lambda işleci
Lambda ifadelerindelambda 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özdizimi 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
Bir lambda ifadesinin giriş parametreleri derleme zamanında kesin olarak yazılmalıdır. Derleyici, giriş parametrelerinin türlerini, önceki örnekte olduğu gibi çıkarsancan, tür bildirimlerini atlayabilirsiniz. Giriş parametrelerinin türünü belirtmeniz gerekiyorsa, aşağıdaki örnekte gösterildiği gibi her bir 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 örnek, giriş parametreleri olmadan bir lambda ifadesinin nasıl tanımlanacağını göstermektedir:
Func<string> greet = () => "Hello, World!";
Console.WriteLine(greet());
Daha fazla bilgi için bkz. lambda ifadeleri.
İfade gövdesi tanımı
Bir ifade gövdesi tanımında aşağıdaki genel sözdizimi vardır:
member => expression;
Burada expression geçerli bir ifadedir. Dönüş türü expression üyenin dönüş türüne örtük olarak dönüştürülebilir olmalıdır. Üye:
- Bir
voiddönüş türü veya - Bir:
- Oluşturucu
- Sonlandırıcı
- Özellik veya Dizin Oluşturucu
seterişimcisi
expression bir deyim ifadesiolmalıdır. İfadenin sonucu atıldığından, bu ifadenin dönüş türü herhangi bir tür olabilir.
Aşağıdaki örnek bir yöntem için bir ifade gövdesi tanımı gösterir Person.ToString :
public override string ToString() => $"{fname} {lname}".Trim();
Bu, aşağıdaki yöntem tanımının bir toplu sürümüdür:
public override string ToString()
{
return $"{fname} {lname}".Trim();
}
Yöntemler, işleçler ve salt okunurdur özellikleri için ifade gövdesi tanımları C# 6 ' dan başlayarak desteklenir. Oluşturucular, sonlandırıcılar ve özellik ve Dizin Oluşturucu erişimcileri için ifade gövdesi tanımları C# 7,0 ile başlayarak desteklenir.
Daha fazla bilgi için bkz. Expression-Bodied Üyeler.
Operatör overloadability
=>İş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.