Lambda expressions evolution of history

   /// <Summary> 
    /// crawler delegate 
    /// </ Summary> 
    /// <param name = "crawlerCode"> reptiles encoding </ param> 
    the delegate void CrawlerDelegate (String crawlerCode); 
    class Program 
    { 
        static void the Main ( String [] args) 
        { 
            { 
                //.net Framework 1.0 primitive 
                CrawlerDelegate crawlerDelegate = new new CrawlerDelegate (the Execute); 
                crawlerDelegate.Invoke ( "crawling page. 1"); 
            } 

            { 
                //.net Framework 2.0 anonymous method 
                CrawlerDelegate crawlerDelegate = new CrawlerDelegate(delegate (string crawlerCode) { Console.WriteLine(crawlerCode); });
                crawlerDelegate.Invoke ( "crawling on page 2"); 
            } 

            { 
                //.net framework 3.0 Lambda
                = New new CrawlerDelegate crawlerDelegate CrawlerDelegate ((String crawlerCode) => {Console.WriteLine (crawlerCode);}); 
                crawlerDelegate.Invoke ( "crawling p. 3"); 
            } 

            { 
                //.net Framework 3.0 the Lambda parameter type may be omitted, parameters are calculated automatically, commonly known as "syntactic sugar" 
                CrawlerDelegate crawlerDelegate new new CrawlerDelegate = ((crawlerCode) => {Console.WriteLine (crawlerCode);}); 
                crawlerDelegate.Invoke ( "crawling p. 4"); 
            }
 
            { 
                //.net Framework 3.0 braces and semicolons if the Lambda method body is only one line, can be omitted
                = New new CrawlerDelegate crawlerDelegate CrawlerDelegate ((crawlerCode) => Console.WriteLine (crawlerCode)); 
                crawlerDelegate.Invoke ( "crawling page. 5"); 
            } 

            { 
                //.net Framework 3.0 omit the Lambda directly written to create an object, the compiler internal automatic wave processing 
                crawlerDelegate crawlerDelegate = (crawlerCode) => Console.WriteLine (crawlerCode); 
                crawlerDelegate.Invoke ( "crawling page. 6"); 
            } 

            the Console.ReadKey (); 
        } 

        /// <Summary> 
        /// performed reptiles 
        /// </ Summary> 
        /// <param name = "crawlerCode"> reptiles encoding </ param>
        private static void Execute(string crawlerCode)
        { 
            Console .WriteLine (crawlerCode); 
        } 

        /// <Summary> 
        /// crawler actuator 
        /// </ Summary> 
        /// <param name = "crawlerContext"> Crawler context </ param>
        /// <param name="method">爬虫逻辑</param>
        static void CrawlerFerformer(CrawlerContext crawlerContext, CrawlerDelegate method)
        {
            method.Invoke(crawlerContext.CrawlerCode);
        }
    }

    /// <summary>
    /// 爬虫上下文
    /// </summary>
    class CrawlerContext
    {
        /// <summary>
        /// 爬虫编码
        /// </summary>
        public string CrawlerCode { get; set; }
    }

  

Guess you like

Origin www.cnblogs.com/lishuyi/p/11404649.html