C#__委托delegate

委托存储的是函数的引用(把某个函数赋值给一个委托类型的变量,这样的话这个变量就可以当成这个函数来进行使用了)

委托类型跟整型类型、浮点型类型一样,也是一种类型,是一种存储函数引用的类型

csharp 复制代码
using System.Reflection.Metadata.Ecma335;

class Program
{


    static int Sum(int p1,int p2)
    {
        return p1 + p2; 
    }
        //乘法函数
    static void Test()
    {
        Console.WriteLine("666");
    }

    //委托不是函数,它不需要有函数体        
    delegate int MyDelegate(int p1, int p2);  //返回值跟参数列表要一致
    delegate void MyDelegate2();
    static void Main(string[] args)
    {
        //Console.WriteLine(Multiply(2.3,2));
        //Console.WriteLine(Sum(1,2));

        MyDelegate d1; //利用委托声明变量
        MyDelegate2 d2; 
        d1 = Sum; //指向一个函数引用
        d2 = Test;
        Console.WriteLine(d1(1,2));
        d2();
    }
}
相关推荐
希望之晨2 分钟前
c++ 11 学习 override
开发语言·c++·学习
Mrliu__15 分钟前
Python高级技巧(六):正则表达式
开发语言·python·正则表达式
普通网友16 分钟前
PL/SQL语言的正则表达式
开发语言·后端·golang
(initial)23 分钟前
B-02. Shared Memory 深度优化:从 Bank Conflict 到 Tensor Core Swizzling
开发语言·c#
消失的旧时光-194323 分钟前
智能指针(四):体系篇 —— 现代 C++ 内存管理全景图
开发语言·c++
丹牛Daniel1 小时前
Java解决HV000183: Unable to initialize ‘javax.el.ExpressionFactory‘
java·开发语言·spring boot·tomcat·intellij-idea·个人开发
天桥下的卖艺者1 小时前
R语言使用trajeR包进行组轨迹模型分析(gbtm- group based trajectory models)
开发语言·r语言
xyq20242 小时前
堆的基本存储
开发语言
wuqingshun3141592 小时前
说一下java的反射机制
java·开发语言·jvm
代码小书生2 小时前
pillow,一个实用的 Python 库!
开发语言·python·pillow