Delegate多个参数已命名方法怎么赋值委托?
时间: 2024-05-09 21:21:47 浏览: 12
您可以使用逗号分隔的参数列表来指定多个参数已命名方法的委托赋值,例如:
```csharp
delegate int MyDelegate(int x, int y);
MyDelegate del = delegate (int x, int y)
{
return x + y;
};
```
这里,MyDelegate 是一个参数为两个整数并返回整数类型的委托类型,通过使用匿名方法,将参数为 x 和 y 的两个整数相加,并将结果返回给委托。
相关问题
delegate多个参数如何调用
当你需要将多个参数传递给委托时,可以使用逗号分隔这些参数,并在调用该委托时指定这些参数。例如:
```
delegate void MyDelegate(int a, string b);
MyDelegate del = delegate(int a, string b) {
Console.WriteLine(a + " " + b);
};
del(1, "hello");
```
这会将整数1和字符串"hello"作为参数传递给委托,并在调用委托时打印它们。
delegate如何赋值给方法
Delegate可以通过赋值匿名方法或具有相同签名的已命名方法来赋值给方法。下面是一个使用匿名方法赋值委托的例子:
```
delegate void MyDelegate(int num);
MyDelegate del = delegate (int num) {
Console.WriteLine("Anonymous Method: " + num);
};
del(10);
```
在上面的示例中,我们定义了一个名为MyDelegate的委托类型,它接受一个整数参数并不返回任何内容。然后我们使用匿名方法将委托del赋值,该方法接受一个整数参数并输出该数字。
当然,也可以使用已命名方法来赋值委托:
```
delegate void MyDelegate(int num);
class MyClass {
public static void MyMethod(int num) {
Console.WriteLine("Named Method: " + num);
}
}
MyClass obj = new MyClass();
MyDelegate del = new MyDelegate(MyClass.MyMethod);
del(20);
```
在上面的示例中,我们定义了一个名为MyClass的类,其中包含名为MyMethod的公共静态方法。我们使用该命名方法来实例化MyDelegate委托,并将其赋值给委托del。最后,我们调用del委托,该委托将调用我们传递给它的MyMethod方法,并输出数字20。