delegate example
DESCRIPTION
Delegate example in C#TRANSCRIPT
public delegate int DelegatSample(int a,int b);public class Sampleclass{public int Add(int x, int y){return x + y;}public int Sub(int x, int y){return x - y;}}class Program{static void Main(string[] args){Sampleclass sc=new Sampleclass();
DelegatSample delgate1 = sc.Add;int i = delgate1(10, 20);Console.WriteLine(i);DelegatSample delgate2 = sc.Sub;int j = delgate2(20, 10);Console.WriteLine(j);}}
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace Example_17_1_ _ _ _Using_Delegates{ public class MediaStorage { public delegate int PlayMedia( );
public void ReportResult(PlayMedia playerDelegate) { if (playerDelegate( ) == 0) { Console.WriteLine("Media played successfully."); } else { Console.WriteLine("Media did not play successfully."); } } }
public class AudioPlayer {
private int audioPlayerStatus;
public int PlayAudioFile( ) { Console.WriteLine("Simulating playing an audio file here."); audioPlayerStatus = 0; return audioPlayerStatus; } }
public class VideoPlayer { private int videoPlayerStatus;
public int PlayVideoFile( ) { Console.WriteLine("Simulating a failed video file here."); videoPlayerStatus = -1; return videoPlayerStatus; } }
public class Tester { public void Run( ) { MediaStorage myMediaStorage = new MediaStorage( );
// instantiate the two media players AudioPlayer myAudioPlayer = new AudioPlayer( ); VideoPlayer myVideoPlayer = new VideoPlayer( );
// instantiate the delegates MediaStorage.PlayMedia audioPlayerDelegate = new MediaStorage.PlayMedia(myAudioPlayer.PlayAudioFile); MediaStorage.PlayMedia videoPlayerDelegate = new MediaStorage.PlayMedia(myVideoPlayer.PlayVideoFile);
// call the delegates myMediaStorage.ReportResult(audioPlayerDelegate); myMediaStorage.ReportResult(videoPlayerDelegate); } }
class Program { static void Main(string[] args) { Tester t = new Tester( ); t.Run( ); } }}
Multicast Delegate Example :
public delegate void MultiDelegate(int a,int b);public class Sampleclass{public static void Add(int x, int y){Console.WriteLine("Addition Value: "+(x + y));}public static void Sub(int x, int y){Console.WriteLine("Subtraction Value: " + (x - y));}public static void Mul(int x, int y){Console.WriteLine("Multiply Value: " + (x * y));}}class Program{static void Main(string[] args){Sampleclass sc=new Sampleclass();MultiDelegate del = Sampleclass.Add;del += Sampleclass.Sub;del += Sampleclass.Mul;del(10, 5);Console.ReadLine();}}
using System;
delegate int NumberChanger(int n);namespace DelegateAppl{ class TestDelegate { static int num = 10; public static int AddNum(int p) { num += p; return num;
}
public static int MultNum(int q) { num *= q; return num; } public static int getNum() { return num; }
static void Main(string[] args) { //create delegate instances NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); //calling the methods using the delegate objects nc1(25); Console.WriteLine("Value of Num: {0}", getNum()); nc2(5); Console.WriteLine("Value of Num: {0}", getNum()); Console.ReadKey(); } }}
using System;
delegate int NumberChanger(int n);namespace DelegateAppl{ class TestDelegate
{ static int num = 10; public static int AddNum(int p) { num += p; return num; }
public static int MultNum(int q) { num *= q; return num; } public static int getNum() { return num; }
static void Main(string[] args) { //create delegate instances NumberChanger nc; NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); nc = nc1; nc += nc2; //calling multicast nc(5); Console.WriteLine("Value of Num: {0}", getNum()); Console.ReadKey(); } }}