C#委托可以调用私有方法吗
时间: 2024-06-14 10:07:30 浏览: 270
C#委托可以调用私有方法。通过使用反射,可以获取私有方法的MethodInfo对象,并将其传递给委托的构造函数。然后,可以使用委托来调用私有方法。
下面是一个示例代码,演示了如何使用委托调用私有方法:
```csharp
using System;
using System.Reflection;
public class Foo
{
private void PrivateMethod()
{
Console.WriteLine("This is a private method.");
}
}
public class Program
{
public static void Main()
{
Foo foo = new Foo();
// 获取私有方法的MethodInfo对象
MethodInfo privateMethod = typeof(Foo).GetMethod("PrivateMethod", BindingFlags.NonPublic | BindingFlags.Instance);
// 创建委托并调用私有方法
Action action = (Action)Delegate.CreateDelegate(typeof(Action), foo, privateMethod);
action.Invoke();
}
}
```
运行上述代码,将会输出:"This is a private method.",证明委托成功调用了私有方法。
阅读全文