功能分配多行

时间:2017-11-30 21:09:35

标签: c#

我是C#编程的新手,我知道 只要调用videoDownloader.DownloadProgressChanged += (sender, args) => Console.WriteLine(args.ProgressPercentage);Console.WriteLine就会运行videoDownloader.DownloadProgressChanged。但我不知道如何在该功能中使用多行。

我希望能够有类似的东西:

videoDownloader.DownloadProgressChanged += (sender, args)
{
    if ((args.ProgressPercentage % 1) == 0)
    {
        Console.WriteLine(args.ProgressPercentage);
    }
}

此外,有人可以向我解释这是什么(以及它叫什么)以及如何/何时使用这种东西?

1 个答案:

答案 0 :(得分:0)

你只是错过了箭头操作符(=>),让C#编译器知道(sender, args)后面的内容是函数体。

您还需要在最后一个大括号后添加分号以结束复合赋值(+=)语句。

正确版本:

videoDownloader.DownloadProgressChanged += (sender, args) => // note the arrow here
{
    if ((args.ProgressPercentage % 1) == 0)
    {
        Console.WriteLine(args.ProgressPercentage);
    }
}; // note the semicolon here

要详细了解匿名函数,请访问相关的Microsoft文档主题:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/anonymous-functions