行内人一看这标题就会笑着说“小样,delegate不止是函数指针”。但是如果你像我一样,只是想把delegate当做函数指针用,那么这篇文章正是你要找的。例子一目了然。
class CC
{
private int id;
public static string getClassName()
{
return "CC";
}
public CC(int id)
{
this.id = id;
}
public int increaseID(int inc)
{
this.id += inc;
return this.id;
}
}
class Program
{
public delegate string DgetClassName();
public delegate int DincreaseID(int inc);
static void Main(string[] args)
{
CC cc = new CC(1);
DgetClassName getName = (DgetClassName)Delegate.CreateDelegate(typeof(DgetClassName), typeof(CC), "getClassName");
DincreaseID increaseID = (DincreaseID)Delegate.CreateDelegate(typeof(DincreaseID), cc, "increaseID");
Console.WriteLine(getName()); // output: CC
Console.WriteLine(increaseID(50)); // output: 51
Console.Read();
}
}
如果你这不是你想要的,顺序看完你一定可以找到答案:
http://msdn.microsoft.com/en-us/library/96b1ayy4(v=VS.90).aspx
http://msdn.microsoft.com/en-us/library/s3860fy3(v=VS.90).aspx
http://msdn.microsoft.com/en-us/library/system.delegate.createdelegate(v=VS.90).aspx