using System;
namespace 委托事件匿名方法Lambda
{
class Program
{
static void Main(string[] args)
{
#region 委托:可以指向方法的类型,说白了就是通过委托调用方法
MyDel myDel = new MyDel(SayHello);
Console.WriteLine(myDel(20));
//第二种赋值方法
MyDel myDel2 = SayHello;
Console.WriteLine(myDel2(30));
#endregion
#region 内置委托
Func<int, String> func = SayHello;
Console.WriteLine(func(200));
#endregion
#region 内置委托加匿名方法
Func<int, String> func2 = delegate(int Parameter) { return "匿名方法" + Parameter; };
Console.WriteLine(func2(100));
#endregion
#region 匿名方法省略参数的用法
SpecialDel speDel = delegate
{
return 1000;
};
Console.WriteLine(speDel(4, "123"));
Func < int,String> speFun = delegate { return "321"; };
Console.WriteLine(speFun(666));
#endregion
#region 内置委托,无返回值
Action<String> action = delegate (String Name){ Console.WriteLine("我是无返回值的内置委托--"+Name); };
action("嗯嗯");
#endregion
Console.ReadKey();
}
public static void ShowMsg()
{
Console.WriteLine("今年是你的本命年!恭喜你");
}
delegate String MyDel(int Parameter);
public static String SayHello(int Parameter) {
return "结果" + Parameter;
}
delegate int SpecialDel(int Param,String Name);
}
}
说明:委托就是一个可以指向方法的类型,一般在方法内部还没确定的情况下用来占位,一般委托与匿名方法的连用在Lambda中常用。