C# 委托和事件
2021-01-11 21:32
标签:eth oid 返回值 一段 函数赋值 ati 指定 null 匿名函数 定义委托中使用到的方法 C# 委托和事件 标签:eth oid 返回值 一段 函数赋值 ati 指定 null 匿名函数 原文地址:https://www.cnblogs.com/sunhouzi/p/12264370.html委托简介
委托的使用
委托应用范围
实际应用
定义委托
// 定义一个无参数无返回值的委托
delegate void MyDelegate();
// 定义一个有参数无返回值的委托
delegate void MyDelegate1(string msg);
// 定义一个无参数有返回值的委托
delegate string MyDelegate2();
// 定义一个有参数有返回值的委托
delegate string MyDelegate3(string msg);
定义委托
// 定义无参数无返回值的委托变量 将一个无参数无返回值的方法赋值给委托
MyDelegate m1 = new MyDelegate(Method);
// 使用以上方式和使用以下方式相同
MyDelegate m2 = Method;
// 定义一个有参数有返回值的委托变量,将一个有参数有返回值的方法赋值给委托
MyDelegate3 m3 = Method1;
// 定义无参数无返回值的委托变量 将一个无参数无返回值的匿名函数赋值给委托
MyDelegate m4 = delegate()
{
Console.WriteLine("无参数无返回值的匿名函数");
};
// 定义一个有返回值的委托变量 将一个有参数有返回值的匿名函数赋值给委托
MyDelegate3 m5 = delegate(string msg)
{
return "有参数有返回值的匿名函数" + msg;
};
// 定义一个无参数无返回值的委托变量 将一个无参数无返回值的lambda表达式赋值给委托
MyDelegate m6 = () =>
{
Console.WriteLine("无参数无返回值的lambda表达式");
};
// 定义一个有参数有返回值的委托变量 将一个有参数有返回值的lambda表达式赋值给变量
MyDelegate3 m7 = (msg) =>
{
return "有参数有返回值的lambda表达式";
};
static void Method()
{
Console.WriteLine("无参数无返回值的方法");
}
static string Method1(string msg)
{
return "有参数有返回值的方法:" + msg;
}
调用委托
// 调用委托
m1();
// 使用以下方式和上面的调用方式相同
m1.Invoke();