using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MultiDelegatesReturn
{
public delegate int DelMath(int i);//定义委托类DelMath,该委托传入一个int类型参数,返回一个int类型参数
class Program
{
static DelMath dMath;//通过委托类型DelMath定义委托实例dMath
static event DelMath eMath;//通过委托类型DelMath定义事件实例eMath
/// <summary>
/// 将传入的参数i自加后作为函数返回值
/// </summary>
static int IncMath(int i)
{
i++;
Console.WriteLine("IncMath has been invoked!");
return i;
}
/// <summary>
/// 将传入的参数i自减后作为函数返回值
/// </summary>
static int DecMath(int i)
{
i--;
Console.WriteLine("DecMath has been invoked!");
return i;
}
static void Main(string[] args)
{
int i = 10;//定义int型变量i,初始值为10
dMath += IncMath;//先将IncMath函数注册到委托实例dMath
dMath += DecMath;//再将DecMath函数注册到委托实例dMath
Console.WriteLine("dMath returned:" + dMath(i).ToString());//将int型变量10传入委托实例dMath调用后,返回的结果是9,说明委托实例
//dMath返回的是后注册的函数DecMath的返回值
eMath += IncMath;//先将IncMath函数注册到事件实例eMath
eMath += DecMath;//再将DecMath函数注册到事件实例eMath
Console.WriteLine("eMath returned:" + eMath(i).ToString());//将int型变量10传入事件实例eMath调用后,返回的结果也是9,说明事件实例
//eMath返回的也是后注册的函数DecMath的返回值
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MultiDelegatesReturn
{
public delegate int DelMath(int i);//定义委托类DelMath,该委托传入一个int类型参数,返回一个int类型参数
class Program
{
static DelMath dMath;//通过委托类型DelMath定义委托实例dMath
static event DelMath eMath;//通过委托类型DelMath定义事件实例eMath
/// <summary>
/// 将传入的参数i自加后作为函数返回值
/// </summary>
static int IncMath(int i)
{
i++;
Console.WriteLine("IncMath has been invoked!");
return i;
}
/// <summary>
/// 将传入的参数i自减后作为函数返回值
/// </summary>
static int DecMath(int i)
{
i--;
Console.WriteLine("DecMath has been invoked!");
return i;
}
static void Main(string[] args)
{
int i = 10;//定义int型变量i,初始值为10
dMath += IncMath;//先将IncMath函数注册到委托实例dMath
dMath += DecMath;//再将DecMath函数注册到委托实例dMath
Console.WriteLine("dMath returned:" + dMath(i).ToString());//将int型变量10传入委托实例dMath调用后,返回的结果是9,说明委托实例
//dMath返回的是后注册的函数DecMath的返回值
eMath += IncMath;//先将IncMath函数注册到事件实例eMath
eMath += DecMath;//再将DecMath函数注册到事件实例eMath
Console.WriteLine("eMath returned:" + eMath(i).ToString());//将int型变量10传入事件实例eMath调用后,返回的结果也是9,说明事件实例
//eMath返回的也是后注册的函数DecMath的返回值
}
}
}