科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Visual C# 2.0匿名方法揭密 3

Visual C# 2.0匿名方法揭密 3

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

     匿名方法的实例数据成员用法   让我们在我们的示例中的''Program''类中定义一个新的实例方法,并使用示例类(译注:即''Program''类)一个实例数据成员

作者:中国IT实验室 来源:中国IT实验室 2007年9月10日

关键字: C# 编程

  • 评论
  • 分享微博
  • 分享邮件
  

  匿名方法的实例数据成员用法

  让我们在我们的示例中的''Program''类中定义一个新的实例方法,并使用示例类(译注:即''Program''类)一个实例数据成员。下面的代码显示了修改后的示例:

public class Program
{
 public delegate void MyDelegate();
 public static void Main(string[] args)
 {
  //实例数据成员测试
  Program p = new Program();
  for(int i=1;i<=5;i++)
   p.TestInstanceDataMembers();
 }
 public void TestInstanceDataMembers()
 {
  MyDelegate d = delegate
  {
   Console.WriteLine("Count: {0}",++m_iCount);
  };
  d();
 }
 public int m_iCount = 0;
}


  我们定义了一个新的实例方法:TestInstanceDataMembers,在''Program''类中这个方法定义了一个匿名方法,匿名方法使用了实例数据成员:隶属''Program''类的m_iCount。当这个示例编译时,C#编译器将创建一个private实例方法来包装这个在TestInstanceDataMembers中定义的匿名方法。C#编译器必须创建一个实例方法因为该方法需要访问''Program''类的实例数据成员。下面是这个示例程序集''Program''类的ILDASM视图。在图的下部选中部分显示了由C#编译器默默添加到''Program''类的新的private实例方法。


  匿名方法的局部变量用法

  到现在为止,我们对匿名方法如何工作以及内部如何实现有了一点基本的理解。从根本上说,C#创建了private方法来包装匿名方法。同时这些方法的签名与它们被分配到的委托相匹配。现在,让我们看看下面的代码:

public class Program
{
 public delegate void MyDelegate();
 public static void Main(string[] args)
 {
  int iTemp = 100;
  MyDelegate dlg = delegate
  {
   Console.WriteLine(iTemp);
  };
  dlg();
 }
}

 

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章