2011年1月1日
摘要:
在使用 ActionT 委托时,不必显式定义一个封装只有一个参数的方法的委托。以下代码显式声明了一个名为 DisplayMessage 的委托,并将对 WriteLine 方法或 ShowWindowsMessage 方法的引用分配给其委托实例。 以下简化了此代码,它所用的方法是实例化 ActionT 委托,而不是显式定义一个新委托并将命名方法分配给该委托。也可以将 ActionT 委托与匿名方法一起使用。 也可以将 lambda 表达式分配给 ActionT 委托实例。下面使用 ActionT 委托来打印 ListT 对象的内容。 使用 Print 方法将列表的内容
阅读全文
posted @ 2011-01-01 21:34
Melou
阅读(35092)
推荐(8)
2010年12月19日
摘要:
最近经常和同事讨论引用参数的问题,为了搞清楚,查了些资料,其中CLR via C#中讲的比较清楚,整理了下----摘自(CLR via C#) 在默认情况下,CLR假设所有的方法参数都是按值传递的。当参数为引用类型的对象时,参数的传递时通过传递指向对象的引用来完成的(引用本身是按值传递的)。这意味着方法可以改变引用对象,并且调用代码可以看到这种改变的结果。 对于一个方法,我们必须知道它的每个参数是引用类型参数,还是值类型的参数,因为我们编写的操作参数的代码会因此有很大的差别。 除了按值传递参数外,CLR还允许我们按引用的方式来才传递参数。在C#中,我们可以用out和ref关键字来做到这一点。这
阅读全文
posted @ 2010-12-19 11:01
Melou
阅读(4191)
推荐(2)
2010年11月28日
摘要:
参考MSDN文章:如何:使用 COM Interop 创建 Excel 电子表格(C# 编程指南)如何: 使用 Visual C#.net Excel 的句柄的事件代码:
阅读全文
posted @ 2010-11-28 21:16
Melou
阅读(1048)
推荐(0)
2010年10月1日
摘要:
在使用 BeginInvoke 和 EndInvoke 进行异步调用时,调用 BeginInvoke 之后,可以执行下列操作来结束异步调用: · 进行某些操作,然后调用 EndInvoke 一直阻止到调用完成。 · 使用 IAsyncResult..::.AsyncWaitHandle 属性获取 WaitHandle,使用它的 WaitOne 方法一直阻止执行直到发出 WaitHandle 信...
阅读全文
posted @ 2010-10-01 08:48
Melou
阅读(4384)
推荐(0)
2010年7月18日
摘要:
同步化操作:由前后紧接的组件或函数调用组成。一个同步化调用会阻塞整个进程直到这一个操作完成。异步化操作:不会阻塞启动操作的调用线程。调用程序必须通过轮流检测、软件中的中断信号或只是明确地等待完成信号来发现调用的完成。.NET 为异步操作提供两种设计模式:· 使用 IAsyncResult 对象的异步操作。 · 使用事件的异步操作。 .NET的许多方面都支持异步编程功能,...
阅读全文
posted @ 2010-07-18 19:27
Melou
阅读(2341)
推荐(1)
2010年7月8日
摘要:
XP极限编程有4大价值观,5个原则,13个最佳实践,其中一个最佳实践——每周工作40小时是最让开发人员开心的,管理者反对的一个最佳实践。 加班、再加班早已成为开发人员的家常便饭,也是管理者最常使用的一种策略,加班似乎成为了IT业内的潜规则,即使企业没有明说,也会成为默认规定,不加班就不能称之为IT,但是xp方法论认为,加班最终会扼杀团队的积极性,最终导致项目失败,这也充分...
阅读全文
posted @ 2010-07-08 20:14
Melou
阅读(701)
推荐(0)
2010年6月19日
摘要:
生成器模式有点类似于抽象工厂模式,两者都返回由许多方法和对象组成的类。它们之间的主要差别是,抽象工厂返回的是一系列相关的类,而生成器是根据提供给它的数据一步一步地构建一个复杂的对象。 动机:在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相...
阅读全文
posted @ 2010-06-19 19:20
Melou
阅读(447)
推荐(0)
2010年6月17日
摘要:
观察者模式的效果 Observer促进了目标的抽象耦合,目标不知道任何一个观察者的详细内容。但这也具有潜在的缺点:当目标中的数据发生了一系列的递增变化时,要持续或反复地更新观察者。如果更新的代价很高,就有必要引进某种管理更改的策略,这样就不会多次或频繁地通知观察者。 当一个客户(观察者)对底层数据做了修改,你要决定由哪一个对象去触发送给其他观察者的更新通知。如果是由目标在它被更改后去通知所有的观...
阅读全文
posted @ 2010-06-17 18:30
Melou
阅读(657)
推荐(0)
摘要:
请求的发送者和接受者可能存在如下关系,某些对象的请求的接受者可能多种多样,变化无常,职责链(Chain Of Responsibility)模式允许多个类处理同一个请求,而不需要了解彼此的功能。它在类之间提供了一种松散的耦合:类之间唯一的联系就是相互传递的请求。请求在类之间传递,直到其中一个类处理它为止。 动机:在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如...
阅读全文
posted @ 2010-06-17 13:07
Melou
阅读(414)
推荐(0)
摘要:
所有的创建型模式都涉及到创建对象实例的方式,因为程序不应该依赖于对象如何创建和安排,当然,使用new 是C#创建一个对象实例最简单的方法。然而,很多情况下,创建对象的本意随程序的需求不同而不同,将创建过程抽象成一个专门的“创造器”类,会使程序更灵活,更通用。 意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 动机:在软件系统中,经常面临着&ldquo...
阅读全文
posted @ 2010-06-17 12:56
Melou
阅读(474)
推荐(0)