我正在和代表们玩耍,我遇到了我不确定发生了什么的情况。
在我的逻辑中,“问候”委托的调用列表应该返回 2,但它只返回 1。如您所见,我将委托引用传递给我创建的对象。我想确认委托可以从外部引用私有方法,唯一的要求是在将方法分配给委托期间可以访问该方法。
class Program
{
static void Main(string[] args)
{
Action greetings = FirstGreeting;
Test test = new Test();
test.AddGreeting(greetings);
Console.WriteLine(greetings.GetInvocationList().Count());
greetings();
Console.ReadLine();
}
static void FirstGreeting()
{
Console.WriteLine("This is the first greeting.");
}
}
class Test
{
public void AddGreeting(Action greetings)
{
greetings += new Action(SecondGreeting);
}
private void SecondGreeting()
{
Console.WriteLine("This is the second greeting.");
}
}