委托其实就是方法的传递
1
public class A
{
delegate int Op(int a,int b);
public static int Sub(int a,int b)
{
return a-b;
}
public void Main(string[] args)
{
int num;
Op op=new Op(Sub);
num=op(20,10);
Console.WriteLine(num));
}
}
2 public class A
{
delegate int Op(int a,int b);
public void Main(string[] args)
{
int num;
B b=new B();
Op op=new Op(B.Sub);
num=op(20,10);
Console.WriteLine(num));
}
}
public class B
{
public int Sub(int a,int b)
{
return a-b;
}
}
3
class A
{
static void Main(string[] args)
{
static void DisplayMsg()
{
Console.WriteLine("prolove");
}
B b=new B();
b.Display+=new B.EventDelgate(DisplayMsg);
b.Dis();// 触发事件
}
}
class B
{
public delegate void EventDelgate();
public event EventDelgate Display;
public void void Dis()
{
Display();//调用事件
}
}
1
public class A
{
delegate int Op(int a,int b);
public static int Sub(int a,int b)
{
return a-b;
}
public void Main(string[] args)
{
int num;
Op op=new Op(Sub);
num=op(20,10);
Console.WriteLine(num));
}
}
2 public class A
{
delegate int Op(int a,int b);
public void Main(string[] args)
{
int num;
B b=new B();
Op op=new Op(B.Sub);
num=op(20,10);
Console.WriteLine(num));
}
}
public class B
{
public int Sub(int a,int b)
{
return a-b;
}
}
3
class A
{
static void Main(string[] args)
{
static void DisplayMsg()
{
Console.WriteLine("prolove");
}
B b=new B();
b.Display+=new B.EventDelgate(DisplayMsg);
b.Dis();// 触发事件
}
}
class B
{
public delegate void EventDelgate();
public event EventDelgate Display;
public void void Dis()
{
Display();//调用事件
}
}