c# - 初始化 C# 委托(delegate)的 "correct"方法是什么?

标签 c# .net delegates initialization

C# 委托(delegate)对我来说一直很难掌握,所以我很高兴偶然发现 logicchild's article on The Code Project web site titled "C# Delegates: Step by Step" .他有一种非常简洁的方式来解释 C# 委托(delegate),我可以向您推荐它。但是,在尝试这些示例时,我发现有两种初始化委托(delegate)的方法,主要是:

    //create a new instance of the delegate class
    CalculationHandler sumHandler1 = new CalculationHandler(math.Sum);
    //invoke the delegate
    int result = sumHandler1(8, 9);
    Console.WriteLine("Result 1 is: " + result);

    CalculationHandler sumHandler2 = math.Sum;
    //invoke the delegate
    int result = sumHandler2(8, 9);
    Console.WriteLine("Result 2 is: " + result);

数学类定义为

public class math
{
    public int Sum(int x, int y)
    {
        return x + y;
    }
}

那么哪个是“正确”的方式,为什么?

最佳答案

它们都是正确的,但是 method group conversion ,这是 2.0 (IIRC) 中添加的第二个选项。 IE。如果您使用的是旧版本的编译器,则需要使用第一个选项。否则额外的打字真的是多余的。

关于c# - 初始化 C# 委托(delegate)的 "correct"方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3750843/

相关文章:

ios - 在执行下一条语句之前如何等待 NSURLConnection 委托(delegate)完成?

c# - 使用 AsyncTask 下载文件并在进度条中显示进度

c# - 从 C# WinForm 将数据发布到 PHP 页面

.net - 在 .NET 中处理单例对象

ios - 无法调用委托(delegate)方法

c# - 帮助将小型 C# WCF 应用程序转换为 Visual Basic(第 2 部分)

c# - 如何正确地将对象按类型从 C# 传递到 VBScript?

c# - Regex.Replace 比使用 String.Contains 的条件语句慢得多

c# - 使用 IoC 的项目中目录的推荐文件夹结构是什么

.net - 为 ASP.NET Core lambda 函数 serverless.template 文件设置 AWS Authorizer 条目