C#(委托a)

时间:2023-03-08 19:40:56
C#(委托a)
C#(委托a)
public delegate double TheOperator(double x, double y); public class Operators
{
 static public double Add(double x, double y)
 {
  return x + y;
 }  static public double Sub(double x, double y)
 {
  return x - y;
 }  //乘,除法 我也懒得废话了
} public class DotNet_Calculator
{
 public double Foo(TheOperator op, double x, double y)
 {
  return op(x, y);
 }
} public class TheMainClass
{
 static public void Main()
 {
  TheOperator myAdd = new TheOperator(Operators.Add);
  TheOperator mySub = new TheOperator(Operators.Sub);   DotNet_Calculator dc = new DotNet_Calculator();
  double sum = dc.Foo(myAdd, , ); //sum = 6
  System.Console.WriteLine(sum);
  double sub = dc.Foo(mySub, , ); //sub = -4
  System.Console.WriteLine(sub);
 }
} C#(委托b)
//小张类
public class MrZhang
{
//其实买车票的悲情人物是小张
public static void BuyTicket()
{
Console.WriteLine("NND,每次都让我去买票,鸡人呀!");
}
} //小明类
class MrMing
{
//声明一个委托,其实就是个“命令”
public delegate void BugTicketEventHandler(); public static void Main(string[] args)
{
//这里就是具体阐述这个命令是干什么的,本例是MrZhang.BuyTicket“小张买车票”
BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket); //这时候委托被附上了具体的方法
myDelegate();
Console.ReadKey();
}
}