当前位置:首页 > Windows程序 > 正文

C# 委托篇

2021-05-26 Windows程序

{
//定义一个委托类型,如果传递的方法有参数此处必须声命,因为调用委托的时候将要用到
delegate int AddDel(int a, int b);
delegate int AddDel2(int a, int b);
static void Main(string[] args)
{
#region 普通的委托
////调用静态方法
//AddDel del = new AddDel(AddStaticFunc);  AddDel del=AddStaticFunc--这样写也可以
//Console.WriteLine(del(1, 2));

////调用实例方法
//AddDel2 del2 = new AddDel2(new Program().AddInstansFunc);
//Console.WriteLine(del2(3, 4));

//Console.ReadKey();
#endregion

#region 泛型委托
//Func<int, int, int> func =AddStaticFunc; --注意委托指定方法的时候可以在new 委托(方法名)里指定 也可以直接如当前这种指定
//凡是委托指定方法的地方都可以用lambda表达式,lambda语句,,匿名方法
//Func<int, int, int> func = new Func<int, int, int>((a, b) => a + b);----lambda 表达式
//Func<int, int, int> func = new Func<int, int, int>(delegate(int a, int b) { return a + b; });---匿名方法
Func<int, int, int> func = (int a, int b) => { return a + b; };// 注意在写lambda表达式的时候(){}可以省略的情况都是其里边只有一个变量或一个语句

Console.WriteLine(func(1, 3));
Console.ReadKey();
#endregion

}
/// <summary>
/// 静态方法
/// </summary>
/// <param></param>
/// <param></param>
/// <returns></returns>
static int AddStaticFunc(int a, int b)
{
return a + b;
}
/// <summary>
/// 实例方法
/// </summary>
/// <param></param>
/// <param></param>
/// <returns></returns>
public int AddInstansFunc(int a, int b)
{
return a + b;
}
}

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/71507.html