1.
引用类型是类型安全的指针,它们的内存是分配在堆(保存指针地址)上的。String、数组、类、接口和委托都是引用类型。2.
强制类型转换与as类型转换的区别:当类型转换非法时,强制类型转换将抛出一个System.InvalidCastException异常,而as不会抛出异常,它返回一个null...
分类:
其他好文 时间:
2014-05-23 07:27:25
阅读次数:
408
using System;using System.Collections.Generic;using
System.Linq;using System.Text;using System.Threading.Tasks;namespace 内置委托{
static class Program .....
分类:
其他好文 时间:
2014-05-22 15:58:08
阅读次数:
159
引言
在之前的《创建无阻塞的异步调用》中,已经介绍过异步调用的编写步骤和实施原理。异步调用是CLR为开发者提供的一种重要的编程手段,它也是构建高性能、可伸缩应用程序的关键。在多核CPU越来越普及的今天,异步编程允许使用非常少的线程执行很多操作。我们通常使用异步完成许多计算型、IO型的复杂、耗时操作....
分类:
编程语言 时间:
2014-05-22 02:17:56
阅读次数:
384
了解IAsyncResult
现在我们已经了解,EndInvoke可以给我们提供传出参数与更新后的ref参数;也可以向我们导出异步函数中的异常信息。例如,我们使用BeginInvoke调用了异步函数Sleep,它开始执行。之后调用EndInvoke,可以获取Sleep何时执行完成。但如果我们在Sle...
分类:
编程语言 时间:
2014-05-22 01:49:25
阅读次数:
381
前言本文大部分内容来自于mikeperetz的Asynchronous Method
Invocation及本人的一些个人体会所得,希望对你有所帮助。原英文文献可以在codeproject中搜索到。介绍这篇文章将介绍异步调用的实现机制及如何调用异步方法。大多数.NET开发者在经过delegate、T...
分类:
编程语言 时间:
2014-05-22 01:38:36
阅读次数:
374
有两种方式解决
1.在窗体构造函数中写Control.CheckForIllegalCrossThreadCalls =false;2.使用Invoke等委托函数。
问题原因是。net2.0以后拒绝多线程访问空间,避免空间造成死锁。以前Control.CheckForIllegalCrossThre...
分类:
编程语言 时间:
2014-05-22 01:31:56
阅读次数:
299
原文:编写高质量代码改善C#程序的157个建议[为泛型指定初始值、使用委托声明、使用Lambda替代方法和匿名方法]前言
泛型并不是C#语言一开始就带有的特性,而是在FCL2.0之后实现的新功能。基于泛型,我们得以将类型参数化,以便更大范围地进行代码复用。同时,它减少了泛型类及泛型方法中的转型,确保...
分类:
其他好文 时间:
2014-05-22 00:23:00
阅读次数:
269
Delegate,委托(或代理)是这样一种数据类型:它的变量可以引用到某一个符合要求的方法上,通过委托可以间接地调用该方法。
C#的委托类似于C语言的函数指针,区别在于C#的委托是面向对象的。
我们可以这样认为:在纯粹的面向对象语言C#中,方法也是一种特殊对象,对象的行为就是方法的行为,对象的属.....
分类:
其他好文 时间:
2014-05-21 19:17:52
阅读次数:
303
关键词 :hook 钩子 Applet 中 init() destory() 为钩子,需要子类去实现。
新原则: 别调用我们,我们会调用你们 高层调用低层 低层不能调用高层。
目的 :封装算法
模板方法:子类决定如何实现算法中的步骤
策略:封装可互换的行为,然后使用委托来决定要采用哪一个行为
工厂方法:由子类决定实例化哪个具体类
OO原则:新原则上面
OO模式:...
分类:
其他好文 时间:
2014-05-21 15:51:32
阅读次数:
270
委托模式是基本的设计模式之一。委托,即是让另一个对象帮你做事情。
许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。
委托模式使得我们可以用聚合来替代继承。...
分类:
移动开发 时间:
2014-05-21 13:25:19
阅读次数:
273