C#基础-委托与事件
2021-06-09 02:04
标签:传递 ring 实例化 声明 gate ace 案例 return stat delegate是申明委托的关键字 委托声明 实例化委托对象 委托的调用 委托增加指向方法 委托去除指向方法 案例:关于加减乘除的委托,它的返回值都是double类型,并且都有两个double的参数 C#基础-委托与事件 标签:传递 ring 实例化 声明 gate ace 案例 return stat 原文地址:https://www.cnblogs.com/carious/p/10672365.html委托
返回类型都是相同的,并且参数类型个数都相同delegate double DelOperater(double num1, double num2);
class Program
{
static void Main(string[] args)
{
DelOperater delOp = new DelOperater(Add);
}
static double Add(double a,double b)
{
return a + b;
}
}
double r1 = delOp.Invoke(3, 5); // 第一种方法
double r2 = delOp(3, 5); // 第二种方法
delOp += new DelOperater(Sub); // 减法被传递进来
delOp -= new DelOperater(Sub); // 减法被移出去
namespace ConsoleApp7
{
// delegate是申明委托的关键字
// 关于加减乘除的委托,它的返回值都是double类型,并且都有两个double的参数
delegate double DelOperater(double num1, double num2);
class Program
{
static void Main(string[] args)
{
// 使用委托的时候需要实例化委托对象
// 在实例化委托时,会把方法名作为一个参数传进来,
DelOperater delOp = new DelOperater(Add);
// 在调用委托时,实际上调用的是委托指向的方法
double r1 = delOp.Invoke(3, 5);
Console.WriteLine("委托调用的方法的执行结果:" + r1);
double r2 = delOp(3, 5);
Console.WriteLine("委托调用的方法的执行结果:" + r2);
delOp += new DelOperater(Sub); // 减法被传递进来
double r3 = delOp.Invoke(3, 5);
Console.WriteLine("委托调用的方法的执行结果:" + r3);
double r4 = delOp(3, 5);
Console.WriteLine("委托调用的方法的执行结果:" + r4);
}
static double Add(double a,double b)
{
return a + b;
}
static double Sub(double a,double b)
{
return a - b;
}
}
}