public class LambdaShow
{
public delegate void NoReturnNoPara();
public delegate void NoReturnWithPara(string x, string y);
public delegate int WithReturnNoPara();
public delegate string WithReturnWithPara(out int x, ref int y);
public void Show()
{
{
Console.WriteLine("***********************.NetFramework1.0****************************");
NoReturnNoPara method = new NoReturnNoPara(this.DoNothing);
NoReturnWithPara noReturnWithPara = new NoReturnWithPara(this.Study);
noReturnWithPara.Invoke("参数一", "参数二");
}
int i = 10;
{
Console.WriteLine("***********************.NetFramework2.0****************************");
NoReturnWithPara noReturnWithPara = new NoReturnWithPara(delegate (string x, string y)
{
Console.WriteLine(i);
Console.WriteLine("我是匿名委托");
});
noReturnWithPara.Invoke("参数一", "参数二");
}
{
Console.WriteLine("***********************.NetFramework3.0****************************");
NoReturnWithPara noReturnWithPara = new NoReturnWithPara((string x, string y) =>
{
Console.WriteLine(i);
Console.WriteLine("This is Study");
});
noReturnWithPara.Invoke("元让", "阳光下的微笑");
}
{
NoReturnWithPara noReturnWithPara = new NoReturnWithPara((x, y) =>
{
Console.WriteLine(i);
Console.WriteLine("This is Study");
});
noReturnWithPara.Invoke("参数一", "参数二");
}
{
NoReturnWithPara noReturnWithPara = new NoReturnWithPara((x, y) => Console.WriteLine("This is Study")
);
noReturnWithPara.Invoke("参数一", "参数二");
}
{
NoReturnWithPara noReturnWithPara = (x, y) => Console.WriteLine("This is Study");
noReturnWithPara.Invoke("参数一", "参数二");
}
{
Action<string, string> action = (x, y) => Console.WriteLine($"{x}_{y}");
Action<string> action1 = x => Console.WriteLine($"{x}");
Func<string, string> func = x => "代码男孩";
Func<string> func1 = () => "代码男孩";
}
{
NoReturnWithPara noReturnWithPara = new NoReturnWithPara(this.Study);
noReturnWithPara += this.Study;
noReturnWithPara += (x, y) =>
{
Console.WriteLine($"{x}_{y}");
};
noReturnWithPara -= this.Study;
noReturnWithPara -= (x, y) => { Console.WriteLine($"{x}_{y}"); };
noReturnWithPara("哗哗", "便便");
}
}
private void DoNothing()
{
Console.WriteLine("无参数无返回值委托");
}
private void Study(string x, string y)
{
Console.WriteLine("有参数无返回值委托");
}
}