首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> C# >> 正文

Visual C# 2.0匿名方法揭密

  匿名方法基础

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

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

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‘开头的字符项数组
  string[] AStrings = objMyCol.GetFilteredItemArray(FilterStringWithA);
  Console.WriteLine("----- Strings starting with letter ''A'' -----");
  foreach(string s in AStrings)
  {
   Console.WriteLine(s);
  }
  //获得集合中以字母’T‘开头的字符项数组
  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;
 }
}


 

[1] [2] [3] [4] [5] [6] 下一页

【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·WEB程序开发--ASP.NET和PHP、JSP究竟学哪个?
 ·五步带你入门XML
 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航