Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _05.委托_多播委托
{
/// <summary>
/// 多播委托,就是一次委托按照顺序执行多个方法。
/// Note:如果使用多播委托,该委托的签名必须返回void
/// </summary>
class Program
{
static void Main(string[] args)
{
//使用Action<T>实现多播委托
Action<double> ops = MathOperations.MultiplyByTwo;
ops += MathOperations.Square;
ProcessAndDisplayNumber(3, ops);
Console.ReadKey();
}
static void ProcessAndDisplayNumber(double value, Action<double> ops)
{
ops(value);
}
}
class MathOperations
{
public static void MultiplyByTwo(double value)
{
Console.WriteLine("MultiplyByTwo={0}", value * 2);
}
public static void Square(double value)
{
Console.WriteLine("Square={0}", value * value);
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _05.委托_多播委托
{
/// <summary>
/// 多播委托,就是一次委托按照顺序执行多个方法。
/// Note:如果使用多播委托,该委托的签名必须返回void
/// </summary>
class Program
{
static void Main(string[] args)
{
//使用Action<T>实现多播委托
Action<double> ops = MathOperations.MultiplyByTwo;
ops += MathOperations.Square;
ProcessAndDisplayNumber(3, ops);
Console.ReadKey();
}
static void ProcessAndDisplayNumber(double value, Action<double> ops)
{
ops(value);
}
}
class MathOperations
{
public static void MultiplyByTwo(double value)
{
Console.WriteLine("MultiplyByTwo={0}", value * 2);
}
public static void Square(double value)
{
Console.WriteLine("Square={0}", value * value);
}
}
}
源码地址:点击打开链接