C# 7.1 .Net Framwork4.7 VS2017环境下,方法的引用与调用

方法的调用比较好理解,就是给方法传递实参,执行方法代码。

方法引用涉及委托,委托签名与其引用的方法必须一致。以下demo说明方法调用与引用在写程序时的区别:

cs 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 方法的引用与调用
{
    /// <summary>
    /// 定义一个委托,签名:参数两个double,返回一个double
    /// </summary>
    /// <param name="d1"></param>
    /// <param name="d2"></param>
    /// <returns></returns>
    public delegate double GetResult(double d1, double d2);
    class Program
    {
        static void Main(string[] args)
        {
            //方法的调用
            double num1 = 10;
            double num2 = 15;
            double result_CallMethod = GetSum(GetSum(num1, num2), 25);//result_CallMethod = 50

            //方法的引用
            double result_ReferenceMethod = Calculate(GetSum, num1, num2);//result_ReferenceMethod = 25
        }

        static double GetSum(double a1, double a2) => a1 + a2;

        static double Calculate(GetResult getresult,double d1, double d2) => getresult(d1, d2);
    }
}

so simple and clear,,,

相关推荐
陈奕迅本讯29 分钟前
并发编程-Synchronized
开发语言·c#
步、步、为营2 小时前
.NET10:asp.net core mini api中的验证
java·asp.net·.net
WineMonk2 小时前
ArcPy 与 ArcGIS .NET SDK 读取 GDB 要素类坐标系失败?GDAL 外挂方案详解
arcgis·c#·.net·arcgispro
界面开发小八哥2 小时前
界面开发框架DevExpress XAF实践:集成.NET Aspire后如何实现服务安排?
c#·.net·界面控件·devexpress·ui开发·xaf
fs哆哆2 小时前
在VB.net中,用正则表达式方法清除干扰符号方法
开发语言·正则表达式·c#·.net
cui_win4 小时前
【报错解决】Java 连接https报错「javax.net.ssl.SSLHandshakeException」怎么破?看这篇!
java·https·.net
蒟蒻小袁5 小时前
力扣面试150题--实现Trie(前缀树)
leetcode·面试·c#
追逐时光者5 小时前
一个基于 .NET 开源、模块化 AI 图像生成 Web 用户界面
.net·openai
代码写到35岁13 小时前
Jenkins自动发布C# EXE执行程序
运维·c#·jenkins
yutian060614 小时前
C# 支持 ToolTip 功能的控件,鼠标悬停弹提示框
开发语言·microsoft·c#