C#匿名方法学习总结

匿名方法是C#2.0的一个新的语言特性。本文的主要内容是提供给读者关于C#匿名方法的内部实现和工作方式的一个更好的理解。本文无意于成为C#匿名方法的完全语言特性参考。

C#匿名方法允许我们定义委托对象可以接受的代码块。这个功能省去我们创建委托时想要传递给一个委托的小型代码块的一个额外的步骤。它也消除了类代码中小型方法的混乱。让我们看看:比方说,我们有一个字符串集合命名为MyCollection。这个类有一个方法:获得集合中满足用户提供的过滤准则的所有项,调用者决定在集合中的一个特殊项是否符合条件而被检索到,作为从此方法返回数组的一部分。

 
 
 
  1. public class MyCollection
  2. {
  3. public delegate bool SelectItem(string sItem);
  4. public string[] GetFilteredItemArray(SelectItem itemFilter)
  5. {
  6. List sList = new List();
  7. foreach(string sItem in m_sList)
  8. {
  9. if (itemFilter(sItem) == true) sList.Add(sItem);
  10. }
  11. return sList.ToArray();
  12. }
  13. public List ItemList
  14. {
  15. get
  16. {
  17. return m_sList;
  18. }
  19. }
  20. private List m_sList = new List();
  21. }

我们可以用上面定义的类写如下所示的代码:

 
 
 
  1. public class Program
  2. {
  3. public static void Main(string[] args)
  4. {
  5. MyCollection objMyCol = new MyCollection();
  6. objMyCol.ItemList.Add("Aditya");
  7. objMyCol.ItemList.Add("Tanu");
  8. objMyCol.ItemList.Add("Manoj");
  9. objMyCol.ItemList.Add("Ahan");
  10. objMyCol.ItemList.Add("Hasi");
  11. //获得集合中以字母’A‘开头的字符项数组
  12. string[] AStrings = objMyCol.GetFilteredItemArray(FilterStringWithA);
  13. Console.WriteLine("----- Strings starting with letter ''A'' -----");
  14. foreach(string s in AStrings)
  15. {
  16. Console.WriteLine(s);
  17. }
  18. //获得集合中以字母’T‘开头的字符项数组
  19. string[] TStrings = objMyCol.GetFilteredItemArray(FilterStringWithT);
  20. Console.WriteLine("----- Strings starting with letter ''T'' -----");
  21. foreach(string s in TStrings)
  22. {
  23. Console.WriteLine(s);
  24. }
  25. }
  26. public static bool FilterStringWithA(string sItem)
  27. {
  28. if (sItem[0] == ''A'')
  29. return true;
  30. else
  31. return false;
  32. }
  33. public static bool FilterStringWithT(string sItem)
  34. {
  35. if (sItem[0] == ''T'')
  36. return true;
  37. else
  38. return false;
  39. }
  40. }

以上介绍C#匿名方法学习总结

网站名称:C#匿名方法学习总结
路径分享:http://www.shufengxianlan.com/qtweb/news29/374879.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联