委托和其委托的方法必須具有相同的簽名。簽名相同:1.參數類型相同 2.參數數量相同 3.傳回值一緻
例一
class Program
{
public delegate int MathMethod(int x, int y);
public int Add(int a, int b)
{
return a + b;
}
static void Main(string[] args)
MathMethod mm;
Program p = new Program();
mm = p.Add;// 相當于一個方法的容器
Console.WriteLine("計算結果為{0}",mm(7,6));
Console.ReadLine();
}
例二
public delegate double MathMethod(double x, double y);
double Add(double a, double b)
double Subtract(double a, double b)
double Multiply(double a, double b)
return a * b;
double Divide(double a, double b)
return a / b;
void DoCalculate(MathMethod mm)
Console.WriteLine("請輸入第一個數");
double x = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("請輸入第二個數");
double y = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("結果{0}",mm(x, y));
mm = p.Divide;
p.DoCalculate(mm);
本文參考自金旭亮老師的《.NET 4.0面向對象程式設計漫談》有關代理的内容
C#委托基礎系列原于2011年2月份發表在我的新浪部落格中,現在将其般至本部落格。
本文轉自IT徐胖子的專欄部落格51CTO部落格,原文連結http://blog.51cto.com/woshixy/1070976如需轉載請自行聯系原作者
woshixuye111