程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 傳統的委托、匿名方法、Lambda對比

C# 傳統的委托、匿名方法、Lambda對比

編輯:C#入門知識

C# 傳統的委托、匿名方法、Lambda對比


using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
namespace LambdaDemo  
{  
   class Program  
   {  
        static void Main(string[] args)  
        {  
            Console.WriteLine("傳統的委托代碼示例:");  
           FindListDelegate();  
            Console.Write("\n");  
           Console.WriteLine("使用匿名方法的示例:");  
           FindListAnonymousMethod();  
            Console.Write("\n");  
            Console.WriteLine("使用Lambda的示例:");  
           FindListLambdaExpression();  
 
        }  
        //傳統的調用委托的示例  
        static void FindListDelegate()  
        {  
           //先創建一個泛型的List類  
            List list = new List();  

           list.AddRange(new string[] { "ASP.NET課程","J2EE課程", "PHP課程", "數據結構課程" });  

           Predicate findPredicate = new Predicate(IsBookCategory);  
           List bookCategory = list.FindAll(findPredicate);  

            foreach (string str in bookCategory)  
            {  
                Console.WriteLine("{0}\t", str);
            }
       }  
        //謂詞方法,這個方法將被傳遞給FindAll方法進行書書籍分類的判斷  
        static bool IsBookCategory(string str)  
        {  
            return str.EndsWith("課程") ? true : false;  
        }  
        //使用匿名方法來進行搜索過程  
        static void FindListAnonymousMethod()  
        {  
            //先創建一個泛型的List類  
            List list = new List();  
            list.AddRange(new string[] { "ASP.NET課程", "J2EE課程", "PHP課程", "數據結構課程" });  
           //在這裡,使用匿名方法直接為委托創建一個代碼塊,而不用去創建單獨的方法  
           List bookCategory = list.FindAll
               (
               delegate(string str)  
               {  
                   return str.EndsWith("課程") ? true : false;  
               }  
               );  
           foreach (string str in bookCategory)  
            {  
                Console.WriteLine("{0}\t", str);  
            }  
        }  
        //使用Lambda來實現搜索過程  
      static void FindListLambdaExpression()  
       {  
            //先創建一個泛型的List類  
            List list = new List();  
            list.AddRange(new string[] { "ASP.NET課程", "J2EE課程", "PHP課程", "數據結構課程" });  

            //在這裡,使用了Lambda來創建一個委托方法  

            List bookCategory = list.FindAll((string str) => str.EndsWith("課程"));  

            foreach (string str in bookCategory)  
            {  
                Console.WriteLine("{0}\t", str);  
           }
            Console.ReadLine();
       }  
 
    }  
} 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved