c# func 作为参数
时间: 2024-09-06 18:06:46 浏览: 22
在C#中,`Func<...>`委托类型用于封装一个具有参数和返回值的方法。当你需要将方法作为参数传递给另一个方法时,使用`Func<...>`是非常方便的。`Func<...>`可以接受0到16个输入参数,并且可以返回一个值。
`Func<...>`委托有几种不同的形式,例如:
- `Func<T1, T2, TResult>`:这个委托接受两个参数(类型分别为`T1`和`T2`)并返回一个`TResult`类型的值。
- `Func<T, TResult>`:这个委托接受一个参数(类型为`T`)并返回一个`TResult`类型的值。
- `Func<TResult>`:这个委托不接受参数并返回一个`TResult`类型的值。
这里有一个例子,展示了如何使用`Func<int, int, int>`作为参数传递给另一个方法:
```csharp
public int Add(int a, int b)
{
return a + b;
}
public void SomeMethod(Func<int, int, int> func, int param1, int param2)
{
int result = func(param1, param2);
// 使用结果做其他事情
}
// 调用示例
SomeMethod(Add, 5, 10);
```
在上面的代码中,`Add`方法的签名符合`Func<int, int, int>`委托的参数和返回值类型。`SomeMethod`方法接受一个`Func<int, int, int>`类型的参数,并在方法内部调用这个委托,传入`param1`和`param2`作为参数。