一、代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 例4._2
{
public enum PrintStatus
{
GeneratingReport,
GeneratedReport,
PrintingReport,
PrintingComplete,
Error
}
public delegate void PrintInfoCallBack(PrintStatus Status, object State);
public class ReportPrinter
{
public void PrintNextReport(PrintInfoCallBack CallBack, object State)
{
CallBack(PrintStatus.GeneratingReport, State);
CallBack(PrintStatus.GeneratedReport, State);
CallBack(PrintStatus.PrintingReport, State);
CallBack(PrintStatus.PrintingComplete, State);
}
}
class Program
{
static void GetPrintInfo(PrintStatus Status, object State)
{
Console.WriteLine("{0} Print Status={1}", State, Status);
}
static void Main(string[] args)
{
ReportPrinter rp = new ReportPrinter();
rp.PrintNextReport(new PrintInfoCallBack(Program.GetPrintInfo), "First Report");
rp.PrintNextReport(new PrintInfoCallBack(Program.GetPrintInfo), "Second report");
Console.WriteLine("测试");
Console.ReadLine();
}
}
}
二、结果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2ff2cc868bd580803ae4180cabdcfa50.png)