初步学习“C#委托”(1)
委托很类似于C中的函数指针 包含对方法的引用 帮助决定在运行时调用哪个方法
步骤:1. 定义委托 2. 实例化委托 3. 使用委托
1.定义委托
public delegate void DelegateName();
步骤:1. 定义委托 2. 实例化委托 3. 使用委托
1.定义委托
public delegate void DelegateName();
2.实例化委托
class TestDelegates
{
public delegate int CallFun(int a, int b);
class MathsOperations
{
public int MulFun(int a, int b)
{
return a*b;
}
public int DivFun(int a, int b)
{
return a/b;
}
}
class Test
{
static void Main()
{
CallFun DelegateObj;
MathsOperations math = new MathsOperations();
DelegateObj = new CallFun(math.MulFun);
}
}
}
{
public delegate int CallFun(int a, int b);
class MathsOperations
{
public int MulFun(int a, int b)
{
return a*b;
}
public int DivFun(int a, int b)
{
return a/b;
}
}
class Test
{
static void Main()
{
CallFun DelegateObj;
MathsOperations math = new MathsOperations();
DelegateObj = new CallFun(math.MulFun);
}
}
}
实例化委托时,必须调用 委托的构造函数,并将与 委托相关联的方法及其对 象名作为参数传给它。
3.使用委托class TestDelegates
{
public delegate int CallFun(int a, int b);
}
class MathsOperations
{
public int MulFun(int a, int b)
{
return a*b;
}
public int DivFun(int a, int b)
{
return a/b;
}
}
class Test
{
static void Main()
{
CallFun DelegateObj;
MathsOperations math = new MathsOperations();
DelegateObj = new CallFun(math.MulFun);
int t=DelegateObj(5, 3);
System.Console.WriteLine("结果是:{0}",t);
}
}
}
{
public delegate int CallFun(int a, int b);
}
class MathsOperations
{
public int MulFun(int a, int b)
{
return a*b;
}
public int DivFun(int a, int b)
{
return a/b;
}
}
class Test
{
static void Main()
{
CallFun DelegateObj;
MathsOperations math = new MathsOperations();
DelegateObj = new CallFun(math.MulFun);
int t=DelegateObj(5, 3);
System.Console.WriteLine("结果是:{0}",t);
}
}
}
调用委托的方式与调用方法的方式相同,唯一的差别是没有 调用委托的实现(该实现不存在),而是调用与该委托相关 联的方法的实现代码。