Friday, August 27, 2010

Generic Delegates

http://www.yoda.arachsys.com/csharp/csharp2/delegates.html

namespace GenericDelegate
{
// This generic delegate can call any method
// returning void and taking a single parameter.
public delegate void MyGenericDelegate<T>(T arg);


class Program
{

static void Main(string[] args)
{
Console.WriteLine
("***** Generic Delegates *****\n");
// Register target with 'traditional'
//delegate syntax.
MyGenericDelegate<string> strTarget =
new MyGenericDelegate<string>(StringTarget);
strTarget("Some string data");
// Register target using method group conversion.
MyGenericDelegate<int> intTarget = IntTarget;
intTarget(9);
Console.ReadLine();
}

static void StringTarget(string arg)
{
Console.WriteLine("arg in uppercase is: {0}", arg.ToUpper());
}

static void IntTarget(int arg)
{
Console.WriteLine("++arg is: {0}", ++arg);
}


}

}

No comments: