// in Main we use the higher-order function public static void Main() { // instantiate the storage class var ms = new MediaStorage(); // instantiate the player classes var aPlayer = new AudioPlayer(); var vPlayer = new VideoPlayer(); // instantiate the delegate var aDelegate = new MediaStorage.PlayMedia(aPlayer.PlayAudioFile); var vDelegate = new MediaStorage.PlayMedia(vPlayer.PlayVideoFile); // provide instances to the method using the delegate ms.ReportResult(aDelegate); ms.ReportResult(vDelegate); }
public void Run() { MediaStorage myMediaStorage = new MediaStorage(); // instantiate the two media players AudioPlayer myAudioPlayer = new AudioPlayer(); // instantiate the delegates MediaStorage.PlayMedia audioPlayerDelegate = new MediaStorage.PlayMedia(myAudioPlayer.PlayAudioFile); // call the delegates myMediaStorage.ReportResult(audioPlayerDelegate); }