私は代議員と一緒に遊んでいて、何が起こっているのかわからない状況に遭遇しました。参照として渡されている間の代議員の振る舞い
私のロジックでは、 "greetings"デリゲートの呼び出しリストは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.");
}
}
ありがとうございました。 –