2016-07-01 10 views
1

Ich bin neu mit C#. Ich frage mich, wie man die Delegierten richtig einsetzt. Bisher habe ich in Java programmiert. Was ich in C# implementieren möchte, wäre in Java:C#: Delegaten - Java: ActionListener

public interface CustomListener { 
    void onStart(Song song); 
    void onPause(); 
    void onStop(); 
} 

Wie mache ich das in C#? Ich habe es so versucht:

public event EventHandler<Song> CustomEventHandler; 

Das Problem, das ich sehe, ist, dass nicht jede Methode einen Song als Parameter erhält.

Im Voraus danke für Ihre Hilfe.

Grüße

+1

Sie möchten drei Ereignisse - eines für den Start, eines für die Pause, eines für den Stopp. Oder Sie könnten ein Ereignis nach dem Motto "StateChanged" haben. –

+0

Können Sie bitte mehr beschreiben, was Sie vorhaben? Die Schnittstelle, die Sie in Java zur Verfügung gestellt haben, ist vollkommen in Ordnung, wie in C#. Ich denke also, Sie müssen beschreiben, warum Sie Delegaten zu dieser Schnittstelle hinzufügen möchten. – Enigmativity

Antwort

0

Als einfaches Beispiel Sie etwas das folgende verwenden:

public interface CustomListener 
{ 
    event Action<Song> OnStart; 

    event Action OnPause; 

    event Action OnStop; 
} 

wo Action und Action<T> sind die generischen Delegierten, die kommen von .NET Framework aus dem Kasten heraus.