.NET 8.0'da yeni [7]: C# 12.0'daki lambda ifadelerinde isteğe bağlı parametreler

Womanne

Member
Lambda'nın bir ifadesi, C# 3.0'dan anonim bir yöntem için çok kısaltılmış bir hoparlördü. Ancak, Lambdas C# 12.0'dan önce isteğe bağlı parametrelere izin vermedi. Bu C# 12.0'da değişti.








Holger Schwichtenberg, 53 ünlü uzmanla tavsiye ve eğitim yoluyla ve yazılımın geliştirilmesinde çok sayıda orta ve büyük şirketi destekleyen uzmanlar ağının teknik direktörüdür. Çok sayıda ulusal ve uluslararası uzman konferansındaki görünümleri, 90'dan fazla uzman kitabı ve 1.500'den fazla uzman makalesi sayesinde Holger Schwichtenberg, Almanya'daki .NET ve Web teknikleri için en iyi uzmanlardan biridir.







Örnek: İsteğe bağlı parametreli bu işlev yerine z


public decimal Calc(decimal x, decimal y, decimal z = 1)
{
return (x + y) * z;
}



Lambda'nın aşağıdaki ifadesine C# 12.0'da da izin veriliyor:


var calc = (decimal x, decimal y, decimal z = 1) => (x + y) * z;


Bu, Lambdas Deklarasyonu ile de yapılabilir. İsteğe bağlı parametreli bu yöntem yerine color


public void Print(object text, ConsoleColor? color = null)
{
if (color != null) Console.ForegroundColor = color.Value;
Console.WriteLine(text);
if (color != null) Console.ResetColor();
}



Şimdi bu ifadeyi tekmeleyebilir Lambda:


var Print = (object text, ConsoleColor? color = null) =>
{
if (color != null) Console.ForegroundColor = color.Value;
Console.WriteLine(text);
if (color != null) Console.ResetColor();
};




(RME)
 
Üst