none
Delegate / EventHandler Definition in interface RRS feed

  • Frage

  • Hallo zusammen,

    ich hatte bisher in meiner Klasse ein delegate/event wie folgt definiert:

    public delegate void MyResultHandler(ISample sender);
    public event MyResultHandler MyResultEvent;
    

    Meine Klasse implementiert jetzt aber ein Interface und ich möchte woanders nur noch Typen dieses Interfaces verarbeiten. Das heißt aber, ich muss irgendwie mein Delegate bzw. EventHandler in dieses Interface bekommen.

    Wenn ich obigen Code-Ausschnitt in meine Interface-Definition aufnehme, compiliert es aber nicht mehr.

     

    Die Frage ist daher, wie bekomme ich mein delegate/eventhandler in das Interface?

    Freitag, 23. Juli 2010 12:52

Antworten

Alle Antworten

  • Was hast du anderes gemacht als

    http://msdn.microsoft.com/en-us/library/8627sbea(VS.71).aspx

    public delegate void MyDelegate();   // delegate declaration

    public interface I
    {
       event MyDelegate MyEvent;
       void FireAway();
    }

    • Als Antwort markiert SPDeveloperXP Freitag, 23. Juli 2010 13:05
    Freitag, 23. Juli 2010 12:55
  • Das delegate war in der Klasse implementiert, die das Interface allerdings nicht kannte.

    Das Interface ist in einem separaten Projekt hinterlegt, welches von mehreren anderen Projekten referenziert wird. So muss ich bei Änderung der Schnittstelle nur an einer Stelle ändern.

    Freitag, 23. Juli 2010 13:02
  • Das delegate ist in der Klasse implementiert, die das Interface allerdings nicht kennt.

    Das Interface ist in einem separaten Projekt hinterlegt, welches von mehreren anderen Projekten referenziert wird. So muss ich bei Änderung der Schnittstelle nur an einer Stelle ändern.


    die 'gelegate' -Definition gehört dann auch in das 'separate Projekt'.
    Die C# Regeln und Dokumentation sind eigentlich glasklar...
    Freitag, 23. Juli 2010 13:07