Setup
- это обычный метод.
На
Returns
не обращайте внимания, он тоже обычный метод, он сам по себе, это просто Fluid, делегаты и лямбды здесь ни при чем.
А вот то, что записано в виде лямбда-выражения - это делегат.
Я тут написал пример с четырьмя подобными синтаксисами, отличающимися внешне, но по сути равнозначными, если вы его воспроизведете (создадите приложение WinForms, форму и кнопку с обработчиком) то поймете, что это и примерно зачем оно может применяться:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public delegate void EventHandler2(
int i
);
public Form1()
{
InitializeComponent();
}
void setEventHandler(EventHandler2 eh)
{
eh.Invoke(123);
}
private void button1_Click(object sender, EventArgs e)
{
//Example 1
setEventHandler(x => MessageBox.Show(x.ToString()));
//Example 2 (equalent)
setEventHandler((x) => { MessageBox.Show(x.ToString()); });
//Example 3 (equalent)
setEventHandler(delegate(int x) { MessageBox.Show(x.ToString()); });
//Example 4 (equalent)
setEventHandler(goodbyeDelegatesAndLambdas);
}
void goodbyeDelegatesAndLambdas(int x)
{
MessageBox.Show(x.ToString());
}
}
}