关键词搜索

源码搜索 ×
×

十二月十四日(C#)(委托)

发布2023-02-22浏览484次

详情内容

huozhehome键 把光标迅速移到最前面。end键是最后面

ctrl x剪切

  1. class Program
  2. {
  3. int res = 0;
  4. static void Main(string[] args)
  5. {
  6. Program c = new Program();
  7. int b = c.F(40);//C#对象对于引用非静态字段、方法或属性是必需的
  8. //非静态类的方法不能直接调用,要创建类的对象
  9. Console.WriteLine(b);
  10. }
  11. public int F(int n)
  12. {
  13. if (n == 0)
  14. return 2;
  15. if (n == 1)
  16. return 3;
  17. res = F(n - 1) + F(n - 2);
  18. return res;
  19. }
  20. }
  1. static int F1(int n)
  2. {
  3. if (n == 1)
  4. return 1;
  5. return n * F1(n - 1);
  6. }

或者这样,写成static模式就可以直接调用

  1. class Program
  2. {
  3. static double Multiply(double param1,double param2)//函数体
  4. {
  5. return param1 * param2;
  6. }
  7. static double Divide(double param1,double param2)
  8. {
  9. return param1 / param2;
  10. }
  11. static void Test()
  12. {
  13. Console.WriteLine("Test");
  14. }
  15. delegate double MyDelegate(double param1, double param2);
  16. //定义一个委托
  17. // 委托关键字 返回值类型 委托名 (参数列表(名字无所谓,类型一样就行))
  18. delegate void MyDelegate2();//对应于test函数的委托声明
  19. static void Main(string[] args)
  20. {
  21. //Console.WriteLine(Multiply(2.3, 2));
  22. //Console.WriteLine(Divide(4.5, 3));
  23. MyDelegate delegate1; //一个变量
  24. MyDelegate2 delegate2;
  25. delegate1 = Multiply;
  26. //指向了一个函数引用
  27. //用委托变量指向函数(所指函数的返回值类型与参数列表类型要于他一样)
  28. delegate1 = Divide;
  29. //delegate1 = Test;
  30. delegate2 = Test;
  31. Console.WriteLine(delegate1(2, 4));
  32. //这个委托就可以当作函数来使用了
  33. delegate2();
  34. }
  35. }

委托

  1. delegate void OnDieDelegate();
  2. static void Play(OnDieDelegate onDie)//声明委托变量作为参数给play
  3. {
  4. Console.WriteLine("做任务");
  5. Console.WriteLine("玩家正在战斗");
  6. Console.WriteLine("死亡");
  7. //
  8. if (onDie != null)//判断委托参数是否为空,空会报错
  9. onDie();//预留一个委托,方便以后操作
  10. }
  11. static void ShowDieUI()
  12. {
  13. Console.WriteLine("显示游戏死亡后的UI");
  14. Console.WriteLine("返回首页UI");
  15. }
  16. static void Main(string[] args)
  17. {
  18. // A主角
  19. // BUI 菜单
  20. Play(null);
  21. //play(ShowDieUI())此时委托指向ShowDieUI函数,执行此函数
  22. //这样做的好处:可以灵活变化,给什么参数用什么方法
  23. }

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载