C# 笔记——委托

委托是一个类型安全的对象,它指向程序中另一个以后会被调用的方法(或多个方法)。通俗的说,委托是一个可以引用方法的对象,当创建一个委托,也就创建一个引用方法的对象,进而就可以调用那个方法,即委托可以调用它所指的方法。

如何使用委托?

1、定义委托类型

[访问修饰符]delegate 返回类型 委托名(形参);

2、声明委托对象

委托名 委托实例名;

3、创建委托对象(确定与哪些方法进行绑定)

委托实例名=new 委托名(某个类的方法)

4、使用委托调用方法

委托实例名(实参)

委托注意事项:

1、委托和方法必须具有相同的参数。

2、委托可以调用多个方法,即一个委托对象可以维护一个可调用方法的列表而不是单独的一个方法,称为多路广播(多播)。

3、使用+=和-=运算实现方法的增加和减少。

4、事件也是一种特殊的委托

实例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Delegate;
namespace Delegate
{
    public delegate int Call(int num1, int num2);//第一步:定义委托类型
    class SimpleMath
    {
        // 乘法方法
        public int Multiply(int num1, int num2)
        {
            return num1 * num2;
        }
        // 除法方法
        public int Divide(int num1, int num2)
        {
            return num1 / num2;
        }
    }
}
class Test
{
    static void Main(string[] args)
    {
        Call objCall;//第二步:声明委托对象
        // Math 类的对象
        SimpleMath objMath = new SimpleMath(); 
        // 第三步:创建委托对象,将方法与委托关联起来
        objCall = new Call(objMath.Multiply);
        Call objCall1 = new Call(objMath.Divide);
        objCall += objCall1;//向委托增加一个方法
        //objCall -= objCall1;//向委托减去一个方法
        // 调用委托实例,先执行objMath.Multiply,然后执行objMath.Divide
        int result = objCall(5, 3);
        System.Console.WriteLine("结果为 {0}", result);
        Console.ReadKey();
    }
}

 

转载于:https://www.cnblogs.com/ytwy/p/5503903.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值