首页 > 编程语言 >C#委托的定义和声明

C#委托的定义和声明

时间:2024-06-09 11:59:49浏览次数:16  
标签:定义 委托 C# double de System param2

一、委托的定义

委托(delegate)是一种储存函数引用的类型。

委托的定义指定了一个返回类型和一个参数列表

定义了委托之后,就可以声明该委托类型的变量,接着就可以把一个返回类型跟参数列表跟委托一样的函数赋值给这个变量。

委托的使用分两步

      定义

      声明(变量)

结构体,枚举的使用同上都分为定义跟声明

整数类型数组类型字符串类型都是直接声明变量的,因为类型的定义已经完成了(CLR中已经完成定义)

例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace weituodeshiyong
{
    //定义一个委托跟函数差不多,区别在于
    //1.定义委托需要加上delegate关键字
    //2.委托的定义不需要函数体
    public delegate double Mydelegate(double param1, double param2);//委托的定义

    internal class Program
    {
        static double Multiply(double param1,double param2)
        {
            return param1 * param2;
        }
        static double Divide(double param1,double param2)
        {
            return param1 / param2;
        }
        static void Main(string[] args)
        {
            Mydelegate de;//利用我们定义的委托类型声明了一个新的变量
            de = Multiply;//当我们给一个委托的变量赋值的时候,返回值跟参数列表必须一样,否则无法赋值
            Console.WriteLine(de(2.0, 34.1));
            de = Divide;
            Console.WriteLine(de(2.0, 34.1));
            Console.ReadKey();

        }
    }
}

 结果:

标签:定义,委托,C#,double,de,System,param2
From: https://blog.csdn.net/2402_83809362/article/details/139559961

相关文章

  • PNPXAssoc.dll文件丢失导致程序无法运行问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个PNPXAssoc.dll文件(挑选合适的版本文件)把它......
  • 程序的基本结构、cout语句(c++语言)
    一、如何下载Dev C++    登录网站:ht.51goc.com二、安装DevC++一、启动DevC++   双击桌面的图标 二、新建一个程序三、复制一个程序    请你复制以下代码到“程序编辑区”    #include<bits/stdc++.h>usingn......
  • 【C++】初识C++
    【C++】初识C++文章概括关键字(C++98)命名空间命名空间的定义命名空间的特性输入与输出C++中的输入输出输入输出的命名空间缺省参数函数重载引用引用的概念引用的特性引用地使用场景引用做参数引用做返回值常引用常引用的俩个例子引用与指针的区别内联函数文章概括......
  • 【C++】类和对象(上)
    类和对象初步认识面向过程与对象类的引入类的定义类的封装类的访问限定符类的作用域类的实例化类的大小this指针this指针的特性初步认识面向过程与对象在之前初步学习C语言后,可以了解到C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题......
  • CSP历年复赛题-P3957 [NOIP2017 普及组] 跳房子
    原题链接:https://www.luogu.com.cn/problem/P3957题意解读:有n个格子,每个格子有不同的距离和分数,从起点,每次可跳距离为d,用g金币后可跳距离范围可以变成max(d-g,1)~d+g,求最小的g,使得可跳跃得分不少于k。解题思路:1、单调性分析:如果g越大,可跳跃的范围就越大,理论上能得的分数越......
  • Native Instruments Komplete Kontrol for mac(音源制作软件)v3.2.1版
    NativeInstrumentsKompleteKontrolforMac是一款功能强大的音乐制作软件,专为macOS平台设计。它为用户提供了一个统一的平台,集成了多个音频插件和虚拟乐器,包括合成器、采样器、效果器等。此外,它与NativeInstruments的硬件控制器紧密结合,如KompleteKontrolS系列键盘,提供了......
  • Watermark Sense for Mac(批量图像水印添加工具)v1.4.3版
    WatermarkSensemac是一款为MacOS平台上设计开发的批量图像水印实用程序.WatermarkSenseforMac(图像批量水印工具)使您能够实现伟大创造性的结果,在批处理模式下,节省大量的时间。WatermarkSensemac软件地址WatermarkSenseMac软件功能WatermarkSense支持文本......
  • 如何通过javascript自动增加markdown h1的文本内容?
    背景希望美化博客园博客,至少不希望文本那么密集地显示,而且想自动在headline插入表情符号,自动进行目录和文本缩进等等。问题如何通过javascript自动增加markdownh1的文本内容?方案在html中增加如下js脚本即可。document.addEventListener("DOMContentLoaded",function(){......
  • Matlab Simulink 电力电子仿真-单相电压型逆变LC滤波输出电路分析
     一、单相电压型逆变电路仿真模型1.电路原理    单相电压型逆变电路是一种常见的逆变电路拓扑结构,通常用于将直流电压转换为交流电压。其主要特点是输出电压为单相交流电压。在这种逆变电路中,一般会使用开关器件来实现电压的转换。    单相电压型逆变电路......
  • 避免内存泄漏:C++ 虚析构函数指南
    C++虚析构函数详解及示例在C++编程中,虚析构函数的使用至关重要,尤其在涉及多态时。以下将解释虚析构函数的作用、在基类中使用虚析构函数的必要性以及纯虚析构函数的定义。1.为什么需要虚析构函数?当基类的析构函数没有被声明为虚函数时,通过基类指针删除派生类对象会导致无......