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,,,

相关推荐
硅基喵6 小时前
.NET 进阶之路:异步、并发与内存管理的系统性认知
.net
csdn_aspnet6 小时前
C# 求n边凸多边形的对角线数量(Find number of diagonals in n sided convex polygon)
开发语言·算法·c#
俊俊谢6 小时前
LabVIEW如何排查和修复dll缺失问题
驱动开发·.net·labview·dll
武藤一雄11 小时前
C# 设计模式大全(第一弹|7种)
microsoft·设计模式·微软·c#·.net·.netcore
格林威12 小时前
Baumer相机锂电池极片裁切毛刺检测:防止内部短路的 5 个核心方法,附 OpenCV+Halcon 实战代码!
开发语言·人工智能·数码相机·opencv·计算机视觉·c#·视觉检测
向上的车轮12 小时前
熟悉C#如何转TypeScript——SDK与包引用
开发语言·typescript·c#
麦壳饼13 小时前
JekyllNet .Net 版本的Jekyll , 你博客 文档的静态生成利器 。
.net
CSharp精选营14 小时前
Dispose 不释放?C# 资源泄漏的 3 种隐蔽场景排查
c#·资源泄漏
步步为营DotNet15 小时前
.NET 11 中 ASP.NET Core 10 在分布式系统中的安全通信与性能调优
安全·asp.net·.net
unicrom_深圳市由你创科技15 小时前
LabVIEW和C#在工业控制中的应用差异是什么?
fpga开发·c#·labview