// 2. 通过匿名函数调用 static void CallByAnonymousMethode() { VoteDelegate vote = delegate(string nickname) { Console.WriteLine($"昵称为:{nickname}:这是通过匿名函数调用的"); Console.WriteLine(); }; vote.Invoke("小夏"); }
static void Main(string[] args) { // 使用匿名方法来实例化委托对象 VoteDelegate votedelegate = delegate(string nickname) { Console.WriteLine("昵称为:{0} 来帮Learning Hard投票了", nickname); }; // 通过调用托来回调Vote()方法,此为隐式调用方式 votedelegate("SomeBody"); Console.Read(); }
public void T12D4() { VoteDelegate votedelegate = new VoteDelegate(new Friend().Vote); votedelegate("SomeBody"); VoteDelegate votedelegate2 = delegate(string nickname) { Console.WriteLine($"昵称为:{nickname}也来投票了"); }; votedelegate2("EveryOne"); Console.ReadKey(); }
private static void CTest1() { //创建委托对象 VoteDelegate vd1 = new VoteDelegate(delegate(string n) { Console.WriteLine($"{n} 投票给fwq"); }); VoteDelegate vd2 = delegate(string nn) { Console.WriteLine($"{nn} 投票给fff"); }; vd1("qqqq"); vd2("aaa"); Console.WriteLine("-----------------"); }
public static void ExecPig() { VoteDelegate vdl; vdl = new VoteDelegate(Three.Pig); vdl("八戒"); Console.ReadKey(); //匿名方法的使用,换句话说就是将原来要写的方法直接写在一起 VoteDelegate vdl2 = delegate(string tickname) { Console.WriteLine("{0}不是猪.", tickname); }; vdl2("天蓬元帅"); Console.ReadKey(); }
static void Main(string[] args) { //使用Vote方法来实例化委托对象 //VoteDelegate votedelegate = new VoteDelegate(new Friend().Vote); //隐式实例化委托方式 将方法直接赋 //VoteDelegate voteDelegate = new Friend().Vote; //使用匿名方法来实例化委托对象 //使用匿名方法 不再需要单独定义一个Vote方法 //匿名方法缺点 不能再其他地方被调用 不具有复用性 //匿名方法自动形成闭包 当一个函数对另一个函数的调用时,或当内部函数使用了外部函数的变量时,都会形成闭包 VoteDelegate votedelegate = delegate(string nickname) { Console.WriteLine("昵称为: {0}", nickname); }; //通过调用委托来回调Vote()方法 这是隐私调用方式 votedelegate("SomeBody"); Console.Read(); }
// 1. 通过委托调用 static void CallByDelegate() { VoteDelegate vote = new VoteDelegate(new Friend().Vote); vote.Invoke("小咪"); }