📜  c# 传递方法作为参数 - C# (1)

📅  最后修改于: 2023-12-03 14:59:41.629000             🧑  作者: Mango

C# 传递方法作为参数

在 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# 中,我们可以使用委托技术将方法作为参数传递给其他方法。通过委托,我们可以实现委托和事件处理程序等常见软件模式。在使用委托时,我们需要在代码中定义委托类型,创建委托对象,并将其作为参数传递给其他方法,以便其他方法可以调用传递的委托。