C#委托基礎系列原於2011年2月份發表在我的新浪博客中,現在將其般至本博客。
泛型委托
[csharp]
class Program
{
// 泛型委托,與普通委托類似,不同之處只在於使用泛型委托要指定泛型參數
public delegate T MyGenericDelegate<T>(T obj1,T obj2);
int AddInt(int x, int y)
{ www.2cto.com
return x + y;
}
string AddString(string s1, string s2)
{
return s1 + s2;
}
static void Main(string[] args)
{
Program p = new Program();
MyGenericDelegate<int> intDel;
intDel = p.AddInt;
Console.WriteLine("int代理的值是{0}", intDel(100, 200));
MyGenericDelegate<string> stringDel;
stringDel = p.AddString;
Console.WriteLine("string代理的值是{0}", stringDel("aaa", "bbb"));
}
}
class Program
{
// 泛型委托,與普通委托類似,不同之處只在於使用泛型委托要指定泛型參數
public delegate T MyGenericDelegate<T>(T obj1,T obj2);
int AddInt(int x, int y)
{
return x + y;
}
string AddString(string s1, string s2)
{
return s1 + s2;
}
static void Main(string[] args)
{
Program p = new Program();
MyGenericDelegate<int> intDel;
intDel = p.AddInt;
Console.WriteLine("int代理的值是{0}", intDel(100, 200));
MyGenericDelegate<string> stringDel;
stringDel = p.AddString;
Console.WriteLine("string代理的值是{0}", stringDel("aaa", "bbb"));
}
}
為了方便開發,.NET基類庫針對在實際開發中最常用的情形提供了幾個預定義好的委托,這些預定義委托用得很廣,比如在編寫lambda表達式和開發並行計算程序時經常要用到他們。就是下面我的幾篇博客需要介紹的內容。