Sunteți pe pagina 1din 5

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
using
using
using

System;
System.Collections.Generic;
System.Linq;
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();
}
}
}

S-ar putea să vă placă și