.net 流氓
天下无难事,有志者成之;天下无易事,有恒者得之。

随笔分类 -  反射 委托与事件

反射 委托与事件
泛型委托在项目中的应用
摘要:Action<T> 泛型委托:封装一个方法,该方法只采用一个参数并且不返回值。可以使用此委托以参数形式传递方法,而不用显式声明自定义的委托。该方法必须与此委托定义的方法签名相对应。也就是说,封装的方法必须具有一个通过值传递给它的参数,并且不能返回值。当然泛型委托不只是只能支持一个参数,它最多可以支持四个参数。 泛型委托与直接显示声明自定义委托的示例比较: 1:显示声明自定义委托:delegate void DisplayMessage(string message);public class TestCustomDelegate{ public static void Main() 阅读全文
posted @ 2011-08-09 09:18 .net 流氓 阅读(471) 评论(0) 推荐(0)
Func〈T, TResult〉 泛型委托 以及演变历程(整理自MSDN)
摘要:以下内容为菩提树下的杨过根据微软MSDN整理,转贴请注明出处MSDN对于Func<T, TResult>)的官方解释: 封装一个具有一个参数并返回 TResult 参数指定的类型值的方法。下面通过几个例子对比下,就容易知道其用法:以下例子演示了如何利用委托将字符串转化为大写:delegatestringConvertMethod(stringinString);privatestaticstringUppercaseString(stringinputString)...{returninputString.ToUpper();}protectedvoidPage_Load(obj 阅读全文
posted @ 2011-08-09 09:15 .net 流氓 阅读(631) 评论(0) 推荐(0)
C#委托与事件 2
摘要:1.泛型委托“泛型类型”是可适应对多种数据类型执行相同功能的单个编程元素。定义泛型类或过程时,无需为可能需要对其执行该功能的每个数据类型定义单独版本。就好比是带有可拆卸刀头的螺丝刀。您检查需要拧动的螺丝,然后选择适合该螺丝的刀头(一字、十字、星形)。将正确的刀头插入到螺丝刀柄上后,您就可以使用螺丝刀执行完全相同的功能,即拧螺丝。螺丝刀就是泛型工具!定义泛型类型时,即使用一个或多个数据类型将其参数化。这样可允许使用代码定制数据类型以满足其要求。代码可以通过泛型元素声明若干个不同的编程元素,每个元素可使用一组不同的数据类型。但是,无论声明的元素使用哪些数据类型,它们均执行相同的逻辑。Code hi 阅读全文
posted @ 2011-08-09 08:58 .net 流氓 阅读(316) 评论(0) 推荐(0)
.NET简谈反射(动态调用)
摘要:我们继续C#基础知识的学习,这篇文章主要要讲的是我们C#程序员迈向高级C#程序员的关键性的一步。 有的朋友会说事实不是这样的,我不用反射就不能开发吗?当然可以,但是用与不用肯定是不一样的,任何复杂抽象的分层架构或者说是复杂的设计模式均是建立在这些基础之上的,比如我们要进行模块化、组件化开发,要严格的消除模块之间的耦合,要进行动态接口调用。这样的强大而灵活的系统开发,必须要用反射才行;任何技术都有它存在的价值和意义,只要我们把它用在合适的位置就能发挥出惊人的力量;能尽可能的减少我们编写的代码,更能是我们的代码便的清晰简洁; 下面我们就来学习C#中的反射的概念以及怎么使用它,用它能为我们提供什么样 阅读全文
posted @ 2011-08-05 15:17 .net 流氓 阅读(415) 评论(0) 推荐(0)
C#委托和事件例析
摘要:ah_bill是对Java了解相对较多,而对C#则是因工作需要才去看了一下,C#跟Java在语法上非常相似,而最初让我比较困惑的就是委托、事件部分,相信大多数初学者也有类似的困惑。经过跟Java的对比学习,发现这其实跟Java的监听、事件是等同的,只是表述上不同罢了。委托+事件是观察者模式的一个典型例子,所谓的委托其实就是观察者,它会关心某种事件,一旦这种事件被触发,这个观察者就会行动。下面是最近写的一个例子,相信能够加深大家对委托和事件的理解。using System;using System.Collections.Generic;using System.Text;namespace C 阅读全文
posted @ 2011-06-22 14:51 .net 流氓 阅读(442) 评论(0) 推荐(3)
再谈C#委托与事件
摘要:之前写过一篇关于C#委托与事件的文章(见《C#委托和事件例析》),不过还是收到一些网友的提问。所以,今天再换另一个角度来详解一下这个问题。一、在控制台下使用委托和事件我们都知道,C#中有“接口”这个概念,所谓的“接口”就是定义一套标准,然后由实现类来具体实现其中的方法,所以说“接口,是一组类的抽象”。同样道理,我们可以将“委托”理解为“方法的抽象”,也就是说定义一个方法的模板,至于这个方法具体是怎么样的,就由方法自己去实现。我们知道接口的最大好处就是可以实现多态,同理,“委托”是可以实现方法的多态,当我们想调用某个具体方法的时候,我们不直接调用这个方法,而是去调用这个委托。当然,我们必须在具体 阅读全文
posted @ 2011-06-22 14:43 .net 流氓 阅读(406) 评论(0) 推荐(1)