zoukankan      html  css  js  c++  java
  • 匿名函数和委托

    新建一个控制台应该程序:

     如下是匿名函数和委托以及lambda对比

    public delegate void GreetingDelegate(string name);
            static void Main(string[] args)
            {
                GreetingDelegate greetDelegate = new GreetingDelegate(GreetToPeople.ChineseGreeting);
                //C# 2.0 Anonymous method
                GreetingDelegate greetA = delegate (string s) { Console.WriteLine("Morning:" + s); };
                //C# 3.0 lambda expression
                GreetingDelegate greetB = (X) => { Console.WriteLine("Morning:" + X); };
    
                greetDelegate("小明");
                greetA("小A");
                greetB("小B");
    
                Console.ReadLine();
            }

    新建一个GeetPeople方法

      public class GreetToPeople
        {
            public static void EnglishGreeting(string name)
            {
                Console.WriteLine("Morning, " + name);
            }
            public static void ChineseGreeting(string name)
            {
                Console.WriteLine("早上好, " + name);
            }
        }

    匿名方法的优点:减少了代码量;

    使用匿名方法必须遵守两个原则:

    (1)在匿名方法中不能使用跳转语句(break,go或continue)跳到该匿名方法的外部,反之亦然:匿名方法外部的跳转语句不能跳到该匿名方法的内部。

    (2)在匿名方法外部不能访问不安全的代码。也不能在匿名方法外部使用 ref和out参数。

  • 相关阅读:
    【Python教程】3道循环结构练习题
    python3中实现print不换行的方法
    零基础学Python:字典(Dictionary)详细教程
    TS错误提示
    v-slot的简单理解应用
    Typora使用方法简单整理
    Java基础系列(6)- 面向对象(中)
    monkey基础 (7)
    monkey基础 (6)
    monkey基础 (5)
  • 原文地址:https://www.cnblogs.com/juneyss/p/10932154.html
Copyright © 2011-2022 走看看