Wskaźnik na funkcję [c#]

0

Witam

Mam problem. Potrzebuję do zdarzenia pewnej klasy dodać metodę z zewnątrz, ale ta klasa jest zadedykowana jako prywatna. Na przykładzie:

class A
{
public event Action zdarzenie;
}
class B
{
private A a;

public B()
{
// tutaj pasowałoby przekazać tą metodę i ją dodać do a.zdarzenie
}
}
class C
{
private B b;
public C()
{
// tutaj potrzebuję dodać metodę metoda
}
public void metoda()
{
// rób coś
}
}

Z chęcią wysłucham też innych propozycji na rozwiązanie tego problemu.

Pozdro

0

Nie wiem czy o to chodzi - pisane z palca.. więc - może nie działać.

class A
{
public event Action<Action> zdarzenie;
}
class B
{
private A a;

public B()
{
if(a.zdarzenie!=null)
  a.zdarzenie(B);
}
}
class C
{
private B b;
public C()
{
// tutaj potrzebuję dodać metodę metoda // nie rozumiem ?
}
public void metoda()
{
// rób coś
}
}
0

Nie o to mi chodziło. Chcę, aby w konstruktorze klasy C, można było przypisać metodę metoda do b.a.zdarzenie. Bezpośrednio nie da się tego osiągnąć.

0

No to zgadujemy dalej:

class A
{
    public event Action zdarzenie;
}

class B
{
    private A a;

    public B(Action foo)
    {
        // tutaj pasowałoby przekazać tą metodę i ją dodać do a.zdarzenie
        this.a = new A();
        this.a.zdarzenie += foo;
    }

}

class C
{
    private B b;

    public C()
    {
        // tutaj potrzebuję dodać metodę metoda
        this.b = new B(metoda);
    }

    public void metoda()
    {
        // rób coś
    }
}
0

O to właśnie chodziło. Wielkie dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1