csharp的GetInvocationList方法怎样使用
时间: 2023-12-10 14:37:48 浏览: 125
dotnet C# 调用委托的 GetInvocationList 的对象分配.rar
`GetInvocationList()` 方法用于获取委托实例中所有方法的列表。下面是一个示例:
```csharp
using System;
namespace DelegateSample
{
class Program
{
delegate void PrintDelegate(string message);
static void Main(string[] args)
{
PrintDelegate printDelegate = Console.WriteLine;
printDelegate += Console.Error.WriteLine;
Delegate[] invocationList = printDelegate.GetInvocationList();
foreach (var invocation in invocationList)
{
Console.WriteLine(invocation.Method.Name);
}
}
}
}
```
在上述示例中,我们定义了一个 `PrintDelegate` 委托类型,它可以接受一个字符串参数并返回 `void`。然后,我们创建了一个 `printDelegate` 实例,并向其添加了两个方法:`Console.WriteLine` 和 `Console.Error.WriteLine`。接下来,我们调用 `GetInvocationList()` 方法来获取委托实例中所有方法的列表,并使用 `foreach` 循环打印每个方法的名称。
输出结果如下:
```
WriteLine
WriteLine
```
这表明 `printDelegate` 实例包含两个方法,即 `Console.WriteLine` 和 `Console.Error.WriteLine`。
阅读全文