顾名思义,匿名方法是没有名称的方法。可以使用委托(delegate)关键字定义C#中的匿名方法,可以使用lambda表达式来定义,并且可以将其分配给委托(delegate)类型的变量。
在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。
语法格式(parameter list) => { statement(s) }
参数列表是方法所需的参数,可以是零个或多个。如果不需要参数,则使用空括号()。语句(s)是要在方法中执行的代码。
匿名方法使用定义一个匿名方法,使用它接受两个参数并返回它们的和:
Func<int, int, int> add = (x, y) => x y;
Func<int, int, int>是一个具有两个整型参数和一个整型返回值的函数类型。 (x, y) => x y 是一个匿名方法,它接受两个整型参数x和y,并返回它们的和。
完整示例代码:
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NoNameFunc
{
internal class Program
{
static void Main(string[] args)
{
Func<int, int, int> add = (x, y) => x y;
int result = add(1, 2); // 在这里,1和2是函数的输入参数,result是输出结果
Console.WriteLine(result); // 这将打印出3
}
}
}
运行结果
将它们作为参数传递给其他方法或存储在变量中。例如,下面的代码演示了如何将匿名方法作为参数传递给另一个方法:
完整示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NoNameFunc2
{
internal class Program
{
static void Main(string[] args)
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// Iterate over the numbers and print each one to the console
foreach (int number in numbers)
{
Console.WriteLine(number);
}
// Sort the numbers in descending order using a lambda expression
numbers.Sort((x, y) => y - x);
// Iterate over the numbers and print each one to the console
foreach (int number in numbers)
{
Console.WriteLine(number);
}
}
}
}
运行结果
上面使用了一个lambda表达式(x, y) => y - x来定义一个匿名方法,它比较两个数字并返回它们之间的差值。我们将这个匿名方法作为参数传递给Sort方法,以便按降序对数字列表进行排序。
匿名方法在需要简短、临时的方法时非常有用。它们可以使代码更加简洁、易于阅读和维护。它们通常用于LINQ查询和事件处理程序中。
特点:Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved