Delegate | Indexer

Delegate (function pointer) & EventHandler
1. Declare Delegate
eg.
Public delegate int mydelegate( int i, int s ) ;

2. Create method based on delegate ( must have same return type and parameters)
eg.
Public int Add (int f, int s ) { return f + s;}
Public int
Multiply ( int f, int s) { return f*s; }

3. Assign method to delegate object ( pointing to methods)
eg.
mydelegate d1=new mydelegate( Add );
mydelegate d1=new mydelegate( Multiply );

call method via delegate
eg
d1 (5,7) => 12 //must have same type&number parameters
d3=d1+d2;
d3 (5,5) => 10 , 25

VB.Net (4 steps)

1. Public Delegate Sub ButtonDelegate()

2.Public Sub LoadManualPayment()

'Implementaytion of method

End Sub

3. myButtonDelegate = New ButtonDelegate(AddressOf LoadManualPayment)

4. Dim myButtonDelegate As ButtonDelegate

5. myButtonDelegate()

 

4. Event declaration
eg
Public event mydelegate myevent;

5. Subscibe events to method , method fires up when event raised.
eg
clsobj.myevent+= new mydelegate(Add);
clsobj.myevent+= new mydelegate(Multiply);

clsobj.process();

public void process()
{
//check to see if event has any method subsribed
if (myevent !=null)
myevent( 7,7);
}

// output is 2 methods fires up, add & multiply => 7+7=14 and 7*7=49

Back


Indexer
* Allow class object to manipulate class string array[]
* Element of array are dynamically generated based on condition by calling indexer via object.

eg.
public string this [int i]
{

get{

if (i>=0 && i<10)
return array[i];

}

set{

if(i>=0 &&i<10)
array[i]=value
}

}

obj[5]="soonlim "; //calling indexer & exec set{} only , value=soonlim , pass in 5
obj[5] ; //callilng indexer & exec get{} pass in 5

for (i=0;i<10;i++)
WriteLine( obj[i] ) // call indexer & exec get{} pass in i each loop

Back

 

@Copy right of Soon Lim 2006. All Right Reserved