C#中如何传递方法作为参数?
时间: 2024-12-21 07:21:26 浏览: 10
在C#中,将方法作为参数传递通常发生在事件处理、策略模式或泛型方法中,这叫做“委托”或“匿名方法”。下面是基本的步骤:
1. 定义委托(Delegate):
首先需要定义一个委托类型,它代表了期望接收的函数签名。例如,如果你想传递一个接受整数并返回字符串的方法,你可以这样做:
```csharp
delegate string MyAction(int number);
```
2. 创建方法:
创建一个实现了委托签名的方法,并将其赋值给委托变量:
```csharp
void MyMethodToPass(MyAction myAction, int arg) {
string result = myAction(arg); // 调用传递进来的方法
}
string MyFunction(int num) {
return num.ToString();
}
```
3. 传递方法:
在调用`MyMethodToPass`时,可以直接将方法对象作为参数传递:
```csharp
MyMethodToPass(MyFunction, 10); // 这里MyFunction成为了myAction参数的实际值
```
4. 匿名方法或Lambda表达式:
如果不想为简单的行为创建新的方法,还可以使用匿名方法或Lambda表达式:
```csharp
MyMethodToPass(() => num.ToString(), 10);
```
阅读全文