Lambda выражение в C# и делегаты

Лямбда выражение в C# это очень удобный и мощный инструмент.

Общий тип записи выглядит так (input parameters) => expression

Грубо говоря есть 2 способа работы с лямбдной.

1. Использование делегата Func

Func<string, string> someFuncName = s => s.ToUpper();
Console.WriteLine(someFuncName("teststring"));


По сути позволят использовать функцию.
Подробнее тут http://acroblog.acrovations.com/post/2012/11/01/C-Func.aspx

2. Использования для разных функций

button1.Click += (sender, e) =>
{
textBox1.Text += "someTestString";
};

Так же это можно делать асинхронно

button1.Click += async (sender, e) =>
{
await SomeMethodAsync();
textBox1.Text += "someTestString";
};
async Task SomeMethodAsync ()
{     
await Task.Delay(1000);
}

3. Делегаты

delegate void TestDelegate(string s);
…
TestDelegate myDel = n => { string s = n + " " + "World"; Console.WriteLine(s); };
myDel("Hello");

 4. LINQ

var someVar = linqObject.Where(w=>w.ID == 5);

 

Add comment