黑基网 首页 学院 电脑技术 查看内容

详解C#委托、时间和Lambda表达式

2010-9-16 15:04| 投稿: computer

摘要: 关于这个论题, Delegates, Events, and Lambda Expressions 对此有比较深入的分析,可以参考。 C# vs C++之一:委托 vs 函数指针 比较了委...
关于这个论题, Delegates, Events, and Lambda Expressions 对此有比较深入的分析,可以参考。 C# vs C++之一:委托 vs 函数指针 比较了委托和C++指针的区别。 .NET 中的委托确实和C/C++的函数指针非常相似。它是一个值类型,它包装了一个指向方法的引用。它的作用也是为了能够将方法和变量一样作为参数传递。委托的典型应用是控件的事件处理方法。很显然,一个控件在设计的时候没有办法知道当特定事件发生的时候,需要什么方法来处理,这就需要将方法作为参数传递给控件。在LINQ中,也大量用到了委托。 声明一个委托要使用delegate关键字,如下: delegate int Echo(string message);这句代码声明了一个委托类型,这个委托类型的实例可以接受参数为string,返回值为int型的函数。这个方法可以是对象的方法,也可以静态方法,还可以是匿名方法,只要方法的签名和返回值是和声明一致的。这和C的函数指针很像,但是函数指针仅仅包含函数入口地址,而委托是一个类型,它具有比函数指针更强的功能。其中一点就是当方法是实例方法的时候,这个方法可以获得对象的其他变量的值,文首的第二篇文章对此有详细介绍,不再赘述。第二点就是委托是支持多播的,也就是一串方法可以可以依次被执行。例如:static int EchoOriginal(string message)  {      Console.WriteLine(message);      return 1;  }   static int EchoReverse(string message)  {      StringBuilder sb=new StringBuilder();      for(int i=message.Length-1;i>=0;i--)               
  • 小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



    免责声明:本文搜集整理自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,请我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


  • 鲜花

    握手

    雷人

    路过

    鸡蛋

    相关阅读

    最新评论


    新出炉

    返回顶部