📅  最后修改于: 2023-12-03 14:59:41.629000             🧑  作者: Mango
在 C# 中,可以将方法作为参数传递给其他方法。这种技术被称为委托。
委托是一种类型,它可以存储对方法的引用。委托允许我们将方法作为参数传递给其他方法。
以下是定义委托的例子:
delegate void MyDelegate(int x, int y);
上面的代码定义了一个返回类型为 void
,接受两个 int
类型参数的委托类型 MyDelegate
。现在我们可以使用 MyDelegate
类型作为方法参数类型。
以下是创建委托的例子:
MyDelegate myDelegate = new MyDelegate(MyMethod);
上面的代码创建了一个委托 myDelegate
,它指向 MyMethod
方法。现在我们可以将委托 myDelegate
作为参数传递给其他方法。
以下是接受委托作为参数的方法的例子:
void MyFunction(MyDelegate delegateMethod)
{
delegateMethod(10, 20);
}
上面的代码定义了一个接受 MyDelegate
委托类型的参数的方法 MyFunction
。在这个方法里,我们可以调用传递进来的委托。例如,我们可以在委托中调用 MyMethod
。
以下是在 Main
方法中使用委托作为参数的例子:
static void Main(string[] args)
{
MyDelegate myDelegate = new MyDelegate(MyMethod);
MyFunction(myDelegate);
}
static void MyMethod(int x, int y)
{
Console.WriteLine(x + y);
}
上面的代码创建了一个委托 myDelegate
,它指向 MyMethod
方法。然后我们将 myDelegate
委托作为参数传递给 MyFunction
方法。
注意,在 MyFunction
中调用委托时,我们使用了 delegateMethod(10, 20)
,这将调用 MyMethod
。具体来说,它将输出 30
。
在 C# 中,我们可以使用委托技术将方法作为参数传递给其他方法。通过委托,我们可以实现委托和事件处理程序等常见软件模式。在使用委托时,我们需要在代码中定义委托类型,创建委托对象,并将其作为参数传递给其他方法,以便其他方法可以调用传递的委托。