📅  最后修改于: 2023-12-03 14:39:43.084000             🧑  作者: Mango
C# Func 是 C# 中的一个委托类型,它可以用来定义一段可执行的代码块,并在需要的时候执行。C# Func 可以用来传递方法作为参数,或者将方法作为返回值返回。在 C# 中,使用委托类型可以实现许多高级的编程技巧,比如事件、回调函数等。
C# Func 的定义包含两个部分:输入和输出。如下是一个简单的 C# Func 定义,它接受一个字符串作为输入,然后返回字符串的长度:
Func<string, int> stringLengthFunc = (s) => s.Length;
在上面的代码中,Func<string, int>
定义了一个输入为 string
,输出为 int
的 Func 对象。=>
后面的 s.Length
表示了输入字符串的长度,也就是输出结果。
需要注意的是,C# Func 的最后一个类型参数代表输出类型,而其他的类型参数代表输入参数类型。C# Func 可以同时支持最多 16 个参数,如果需要更多的参数,可以使用 Tuple
类型来传递多个值。
使用 C# Func 的方法非常简单,只需要将 Func 对象作为参数传递给另一个方法即可。比如,如果我们有一个方法接受一个字符串和一个 C# Func 对象作为参数:
void PrintLength(string str, Func<string, int> lengthFunc)
{
int length = lengthFunc(str);
Console.WriteLine($"The length of {str} is {length}");
}
我们可以这样使用这个方法:
string testStr = "Hello, world!";
PrintLength(testStr, stringLengthFunc);
这样就会输出字符串的长度。
上面的例子中使用了一个 Lambda
表达式来定义 C# Func。事实上,C# Func 也可以通过普通方法来定义,然后使用 delegate
关键字来将方法转换为 C# Func 对象。但是,使用 Lambda
表达式来定义 C# Func 更加方便和简单。
下面是另一个例子,使用 Lambda
表达式来创建一个 C# Func 对象,在每次调用时将输入字符串转换为小写字母:
Func<string, string> toLowerFunc = (s) => s.ToLower();
这个 C# Func 可以这样使用:
string testStr = "Hello, world!";
string lowerStr = toLowerFunc(testStr);
Console.WriteLine($"The lower case of {testStr} is {lowerStr}");
C# Func 是一个非常有用的委托类型,它可以用来传递方法作为参数或返回值。使用 C# Func 可以让代码更加灵活,同时也可以实现一些高级的编程技巧,比如事件、回调函数等。记住,C# Func 的定义包括输入和输出,可以通过 Lambda
表达式来定义。