c#编程:委托入门

概述

在C#中,委托(Delegate)是一种类型安全的函数指针,它允许你引用一个或多个方法。委托特别适用于需要回调方法或事件处理程序的场景。通过委托,你可以将方法作为参数传递给其他方法,并在适当的时机调用这些方法。 c#委托的作用和c语言中的函数指针是对应的,灵活的使用委托可以有效降低耦合度。

委托的基本用法

  1. 定义委托:首先,你需要定义一个委托类型,指定该委托可以引用的方法签名
  2. 实例化委托:然后,创建委托类型的实例,并将其与一个或多个具有兼容签名的方法关联起来。
  3. 调用委托:最后,你可以像调用普通方法一样调用委托实例,从而间接调用与之关联的方法。

什么时候使用委托?

  • 当你需要将方法作为参数传递给另一个方法时。
  • 在实现事件和回调方法时。
  • 需要在运行时决定要执行哪个方法时。

示例

假设我们有一个简单的场景:根据不同的条件来计算两个数的和或者差。我们可以使用委托来实现这个功能。

using System;

// 定义一个委托类型,它可以指向任何返回int并接受两个int参数的方法
public delegate int MathOperation(int a, int b);

class Program
{
    static void Main()
    {
        // 实例化委托,分别指向Add和Subtract方法,
        //注意:
        //1:  add 和 subtract分别是 两个 MathOperation 委托类型的变量,可以是该类型的委托值,这个 值只能是满足 匹配该 类型委托的方法签名的 方法名
        //2:  Add和Subtract 都是方法名字,这里不要给方法名后面加括号(), 因为加上括号()就是对方法的调用了,其表达式就是方法的返回值(运行结果)!    方法名是调用函数的入口(地址),向委托赋值的就是这个入口(地址)!
        MathOperation add = Add;
        MathOperation subtract = Subtract;

        // 调用委托
        Console.WriteLine("Add result: " + PerformOperation(10, 5, add));
        Console.WriteLine("Subtract result: " + PerformOperation(10, 5, subtract));
    }


    // 定义两个方法,它们都符合MathOperation委托的签名
    public static int Add(int a, int b)
    {
        return a + b;
    }

    public static int Subtract(int a, int b)
    {
        return a - b;
    }

    // 接受一个MathOperation委托类型的参数,并调用它
    public static int PerformOperation(int a, int b, MathOperation operation)
    {
        return operation(a, b);
    }
}

在这个例子中,MathOperation 是一个委托类型,它可以指向任何返回 int 并接受两个 int 参数的方法。PerformOperation 方法接受一个 MathOperation 类型的参数,并调用它来执行相应的数学运算。这样,我们就能够灵活地在运行时选择要执行的操作(加法或减法)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值