delegate example

6
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

Upload: shubhangi

Post on 20-Dec-2015

213 views

Category:

Documents


0 download

DESCRIPTION

Delegate example in C#

TRANSCRIPT

Page 1: Delegate Example

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 {

Page 2: Delegate Example

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( ); } }}

Page 3: Delegate Example

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;

Page 4: Delegate Example

}

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

Page 5: Delegate Example

{ 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(); } }}