It is a class. Un like a class it contains signature.
And it is capable to hold the methods which are matches to its signature.
When you invoke the deleage it executes method what it holds.
1) You can send methods as parameters to another method
Different Types of delegates
Annoymous methods : allows you to create methods on the fly without name and assign them to delegate.
Lamda Expressions and statements
protected void Page_Load(object sender, EventArgs e)
{
MyDelegate objDel = BgNuimber;
Response.Write(objDel(34, 6));
Response.Write("
");
//anonymous method
//objDel = delegate(int x, int y) { return x + y; };
//lamda Expression
//objDel = (int x, int y) => x + y;
objDel = (x, y) => 6;
Response.Write(objDel(6, 6));
//RunMethods(BgNuimber, 565, 34);
//RunMethods(ProductNumbers, 4, 4);
}
public void RunMethods(MyDelegate myDel, int x, int y)
{
Response.Write(myDel(x,y));
Response.Write("
");
}
public int BgNuimber(int a, int b)
{
int bigNumber;
if (a > b)
bigNumber = a;
else
bigNumber = b;
return bigNumber;
}
public int ProductNumbers(int x, int y)
{
return x * y;
}
if you want a return value method binding to delegate --> goto function delegates
Func myFucionDel = BgNuimber;
Response.Write(myFucionDel(34, 356));
if you want void method binding to delegate --> goto function delegates
Action myActionDel = delegate(int no, string name) { Response.Write("Your Number is : " + no.ToString() + "
" + "Your name is " + name); };
myActionDel(5486," Ravi KVS");
protected void Page_Load(object sender, EventArgs e)
{
List myList = new List() { 344, 6, 222, 9, 11, };
var newList = myList.Where((n) =>
{
int r;
int rev = 0;
int m = n;
while (m != 0)
{
r = m % 10;
rev = rev * 10 + r;
m = m / 10;
}
return n == rev;
});
//Code to check even numbers
//var newList = myList.Where((n) => n % 2 == 0);
//var newList = myList.Where((n) => CheckEven(n));
//Code to return alternate Numbers
//var newList = myList.Where((n, i) => i % 2 != 0);
foreach (var n in newList)
{
Response.Write(n);
Response.Write("
");
}
}
Delegate
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment