В предыдущей статье было расмотрено
C# Делегаты, анонимные методы, лямбда выражения. Теперь с помощью анонимных
методов или лямбда выражений можно упростить код обработки событий. Помним, что в лямбда выражения есть оператор “=>” который делит выражение на две части. В первой мы указываем список параметров, во второй пишем тело выражения.
Рассмотрим следующий пример:
namespace App
{
delegate void EventDelegate(object input);
class Program
{
static void Main(string[] args)
{
Test test = new Test();
A a = new A();
B b = new B();
test.EVENT += (object input) =>
Console.WriteLine("Событие возбудил обьект класса {0}",
input.GetType());
// возбуждаем события
test.DoEvent(a);
test.DoEvent(b);
Console.ReadLine();
}
}
class Test
{
public event EventDelegate EVENT;
public void DoEvent(object input)
{
EVENT(input);
}
}
class A { }
class B { }
}
Чему тут стоит уделить внимание, так это следующей строке:
test.EVENT += (object input) =>
Console.WriteLine("Событие возбудил обьект класса {0}",
input.GetType());
При использование методов, мы указывали имя метода. Если метод в каком то классе, для указания метода использовался объект данного класса (если метод не static), а здесь просто присваивается само выражение лямбда, которое в качестве параметра принимает один параметр типа object.

Оценить статью:
Оценивая статью, Вы подсказываете нам насколько данная информация стала
полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала
для понимания и простоты его изложения. Дополнительные комментари, вопросы,
дополнения и замечания Вы можете указать на странице
От Вас
Частичное, или полное копирование материала данной
статьи возможно лишь при размещении ссылки на данную страницу.