《C#图解教程(第五版)》- 14.1 什么是委托?

委托和类一样,是一种用户定义类型。但是,类表示的数据方法的集合,而委托则持有一个或多个方法,以及一系列预定义操作。

示例:创建并使用委托

using System;

namespace ConsoleApp1
{
    //声明一个委托类型,它不需要在类内部声明,因为它是类型声明
    delegate void MyDel(int value);                             

    class Program
    {
        public void PrintLow(int value)
        {
            Console.WriteLine($"{value}-Low Value");
        }

        public void PrintHigh(int value)
        {
            Console.WriteLine($"{value}-High Value");
        }

        static void Main(string[] args)
        {
            Program program = new Program();
            //声明一个委托变量,但这并不创建对象
            MyDel del;

            //创建随机整数生成器对象,并得到0到99之间的一个随机数
            Random rand = new Random();
            int randomValue = rand.Next(99);

            //创建一个包含PrintLow或PrintHigh方法的委托类型的对象,并把它复制给委托变量。
            //我们使用三元条件运算符来检查返回并存储的随机值是否小于50。
            del = randomValue < 50 ? new MyDel(program.PrintLow) : new MyDel(program.PrintHigh);

            //调用委托,在调用委托的时候,包含的每一个方法都会被执行
            del(randomValue);
        }
    }
}
未经允许不得转载:透视数据 » 《C#图解教程(第五版)》- 14.1 什么是委托?