首页 > 编程语言 >c#中的委托

c#中的委托

时间:2024-11-28 17:24:41浏览次数:5  
标签:Console CalculateFunction 委托 c# double Add Test

委托:delegate

与类平级
用于封装,解耦

// 声明一个委托
delegate void Func(int x);

简单使用

namespace ConsoleApp2;

class Program
{
    /**
     * 委托
     */
    public delegate double CalculateFunction(double x, double y);
    
    /**
     * 加法
     */
    static double Add(double x, double y)
    {
        return x + y;
    }

    /**
     * 减法
     */
    static double Subtract(double x, double y)
    {
        return x - y;
    }

    // Test方法的参数就是一个方法,
    static void Test(CalculateFunction calculateFunction)
    {
        Console.Write("请输入x的值:");
        double x = Convert.ToDouble(Console.ReadLine());
        Console.Write("请输入y的值:");
        double y = Convert.ToDouble(Console.ReadLine());
        
        double result = calculateFunction(x, y);
        Console.WriteLine($"x与y委托计算的结果>>>{result}");
    }
    
    static void Main(string[] args)
    {
        // CalculateFunction cal = new CalculateFunction(Add);
        // double d = cal(3, 4);
        
        // Test(new CalculateFunction(Add));
        
        Test(Add); // 简写
        Test(Subtract);
        
        Console.ReadKey();
    }
}

接口实现了类的依赖注入

委托实现了方法的依赖注入

标签:Console,CalculateFunction,委托,c#,double,Add,Test
From: https://www.cnblogs.com/ritchieojo/p/18574667

相关文章

  • 九、Spring Boot集成Spring Security之授权概述
    目录前言一、授权概述二、用户权限三、用户授权流程三、SpringSecurity授权方式1、请求级别授权2、方法级别授权前言本文介绍什么是授权,SpringSecurity的授权配置有哪些,配合以下内容观看效果更佳!!!什么是授权,授权有哪些流程,SpringSecurity的授权配置有几种?请查看九、SpringB......
  • 《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验
    第四十章YOLO2人手检测实验1)实验平台:正点原子DNK210开发板2)章节摘自【正点原子】DNK210使用指南-CanMV版V1.03)购买链接:https://detail.tmall.com/item.htm?&id=7828013987504)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html5)正......
  • Thinkpad X1 Tablet gen2 键盘固件逆向分析实现Ctrl与Fn换位
    0.折腾原因一直想有一个键盘+红点+触摸板的桌面组合放在办公室用。键盘+红点操作效率高,触摸板在看文档网页时翻页顺滑。几经转折发现了ThinkpadX1Tabletgen2原装键盘,除了太薄手感一般之外,完美满足需求,而且这款键盘折叠部分里的排线很容易折断,导致价格非常便宜,很适合用来改装US......
  • 网页直播/点播播放器EasyPlayer.js无插件H5播放器chrome如何开启HEVC硬件解码
    在现代视频播放技术中,硬件解码因其卓越的性能和效率而成为提升用户体验的关键。EasyPlayer.jsRTSP播放器作为一款无插件H5播放器,其对硬件解码的支持尤为重要。特别是在Chrome浏览器上,启用硬件解码可以显著提高视频播放的性能,减少CPU的负担,并提供更流畅的观看体验。EasyPlayer.j......
  • HTML中,给<button>添加onclick事件
    <buttononclick="">现在的时间是?</button>常用的给这个button添加onclick事件的几种方式:1、内联Javascript函数可以直接在onclick属性中编写JavaScript代码。这种方式简单直接,将函数定义在<script>标签中,然后在onclick属性中调用这个函数。不过,这种方式会使HTML和Jav......
  • elasticsearch安装ik分词器
    本文主要记录如何安装ik分词器,如果你刚好刷到了这篇文章,对你有所帮助。IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。采用了特有的“正向迭代最细粒度切分算法“,支持细粒度和最大词长两种切分模式;具有83万字/秒(1600KB/S)的高速处理能力。采用了多子处理器分......
  • oracle-日常操作
    查看表空间大小点击查看代码SELECTa.tablespace_name"表空间名",total"表空间大小",free"表空间剩余大小",(total-free)"表空间使用大小",total/(1024*1024*1024)"表空间大小(G)",free/(1024*1024*1024)"表空间剩余大小(G)",......
  • 基于时间维度优化“开源 AI 智能名片 S2B2C 商城小程序”运营策略:提升触达与转化效能
    摘要:随着数字化商业生态的蓬勃发展,“开源AI智能名片S2B2C商城小程序”融合前沿技术与创新商业模式,为企业营销与业务拓展带来新机遇。本文聚焦于用户时间场景维度,深入剖析如何依据不同时段用户行为特征,精准适配运营策略,优化推送机制、功能服务呈现等内容,类比音乐产品及外卖......
  • 【揭秘】ConcurrentHashMap的神秘面纱:源码深度解读,让你成为并发编程高手!
    ConcurrentHashMap是Java中一个线程安全的哈希表实现,它允许多个线程并发地读取和写入映射。与Hashtable不同,ConcurrentHashMap使用了一种分段锁(SegmentLock)机制来提高并发性能。以下是ConcurrentHashMap的源码解读和详解:1.类定义和成员变量publicclassConcurren......
  • Outlook客户端登录世纪互联版邮箱提示“此用户名可能不正确”,或者显示错误代码CAAC03E
    故障现象使用Outlook客户端登录世纪互联版邮箱时,有时候会提示此用户名可能不正确。请确保键入的用户名正确无误。否则,请联系管理员。或者是提示错误代码CAAC03ED问题原因猜测是世纪互联版邮箱和MicrosoftEntra设备注册之间的bug解决方法方法①关掉outlook重新登录......