C#匿名方法學習總結
作者:佚名
這里介紹C#匿名方法學習總結,C#匿名方法允許我們定義委托對象可以接受的代碼塊。這個功能省去我們創(chuàng)建委托時想要傳遞給一個委托的小型代碼塊的一個額外的步驟。
匿名方法是C#2.0的一個新的語言特性。本文的主要內容是提供給讀者關于C#匿名方法的內部實現(xiàn)和工作方式的一個更好的理解。本文無意于成為C#匿名方法的完全語言特性參考。
C#匿名方法允許我們定義委托對象可以接受的代碼塊。這個功能省去我們創(chuàng)建委托時想要傳遞給一個委托的小型代碼塊的一個額外的步驟。它也消除了類代碼中小型方法的混亂。讓我們看看:比方說,我們有一個字符串集合命名為MyCollection。這個類有一個方法:獲得集合中滿足用戶提供的過濾準則的所有項,調用者決定在集合中的一個特殊項是否符合條件而被檢索到,作為從此方法返回數(shù)組的一部分。
- public class MyCollection
- {
- public delegate bool SelectItem(string sItem);
- public string[] GetFilteredItemArray(SelectItem itemFilter)
- {
- List<string> sList = new List<string>();
- foreach(string sItem in m_sList)
- {
- if (itemFilter(sItem) == true) sList.Add(sItem);
- }
- return sList.ToArray();
- }
- public List<string> ItemList
- {
- get
- {
- return m_sList;
- }
- }
- private List<string> m_sList = new List<string>();
- }
我們可以用上面定義的類寫如下所示的代碼:
- public class Program
- {
- public static void Main(string[] args)
- {
- MyCollection objMyCol = new MyCollection();
- objMyCol.ItemList.Add("Aditya");
- objMyCol.ItemList.Add("Tanu");
- objMyCol.ItemList.Add("Manoj");
- objMyCol.ItemList.Add("Ahan");
- objMyCol.ItemList.Add("Hasi");
- //獲得集合中以字母’A‘開頭的字符項數(shù)組
- string[] AStrings = objMyCol.GetFilteredItemArray(FilterStringWithA);
- Console.WriteLine("----- Strings starting with letter ''A'' -----");
- foreach(string s in AStrings)
- {
- Console.WriteLine(s);
- }
- //獲得集合中以字母’T‘開頭的字符項數(shù)組
- string[] TStrings = objMyCol.GetFilteredItemArray(FilterStringWithT);
- Console.WriteLine("----- Strings starting with letter ''T'' -----");
- foreach(string s in TStrings)
- {
- Console.WriteLine(s);
- }
- }
- public static bool FilterStringWithA(string sItem)
- {
- if (sItem[0] == ''A'')
- return true;
- else
- return false;
- }
- public static bool FilterStringWithT(string sItem)
- {
- if (sItem[0] == ''T'')
- return true;
- else
- return false;
- }
- }
以上介紹C#匿名方法學習總結
【編輯推薦】
責任編輯:佚名
來源:
天極網(wǎng)