上一页 1 ··· 5 6 7 8 9 10 下一页
摘要: C#编译器默认的是不进行益出检查(unchecked),因为益出检查会造成一定性能的损失...System.Decimal类型是一个非常特殊的类型,它对cheched和unchecked都失去效用... 阅读全文
posted @ 2009-01-26 19:39 Done 阅读(779) 评论(4) 推荐(0) 编辑
摘要: 介绍基元类型,FCL类型,CLS相容等,认识到string与String、object与Object、bool与Boolean等的区别... 阅读全文
posted @ 2009-01-24 13:41 Done 阅读(2184) 评论(8) 推荐(0) 编辑
摘要: 堆上的所有对象都包含两个额外的成员:类型对象指针和同步块索引,可以看出,上面Manager对象和Employee对象都有这两个成员。在定义一个类型时,可以在类型的内部定义静态数据字段,为这些字段提供支援的字节是在类型对象自身中分配的。在每个类型对象中,最后都包含一个方法表,在方法表中,类型中定义的每个方法都有一个对应的记录项,前面已经讨论过这个方法表... 阅读全文
posted @ 2009-01-24 01:36 Done 阅读(1265) 评论(0) 推荐(3) 编辑
摘要: 当CLR开始加载一个Microsoft Windows进程,在这个进程中可能存在多个线程,当一个线程创建时,它会分配到一个1M大小的堆栈,这个堆栈空间用于向方法传递实参,并用于存储方法内部定义的局部变量,上图展示了一个线程的堆栈内存(右侧)。堆栈是从高位内存地址向低位内存地址构建的,在图中,该纯种执行了一 些代码,它的堆栈上已经有一些数据(显示成堆栈顶部的阴影区域),现在假定线程执行的代码要调用M1方法... 阅读全文
posted @ 2009-01-23 18:22 Done 阅读(716) 评论(0) 推荐(1) 编辑
摘要: CLR允许将一个对象强制转换成它原来的类型或者它和任何基类型。C#要求将一个对象显式的转换成它的任何派生类型...使用is和as进行转换... 阅读全文
posted @ 2009-01-23 01:14 Done 阅读(477) 评论(0) 推荐(0) 编辑
摘要: 这不是一篇关于技术的文章,不是一篇讨论怎样实现验证码的文章,这是一篇关于用户体验的讨论文章...事情的起因是这样的,今早我在做早饭,老师说网上交点话费,就去注册一个建行网上银行,本来今天老师就有事要用电话,但注册时就破口大骂这验证码是个什么玩艺,怎么也看不清楚,也没有换一张的功能,要填不对和话前面的就白填的,骂得很是历害,说开发这个系统的团队是XX... 阅读全文
posted @ 2009-01-22 12:46 Done 阅读(712) 评论(7) 推荐(0) 编辑
摘要: CLR集成了很多种语言,并让它们之间可以相互访问,是因为CLR建立的标准的类型集、元数据、公共执行环境。但由于各种语言间存在着极大的差别,如区分大小写,有的不支持unsigned、操作符重载或者参数可变的方法,所以要想创建这种让别的语言能访问的程序,自己所用的编程语言只能使用其它语言都支持的那些特性。为了帮助我们更好的做到这一点,Microsoft定义了一个"公共语言规范(Common Language Specification,CLS)"... 阅读全文
posted @ 2009-01-21 23:27 Done 阅读(1177) 评论(0) 推荐(1) 编辑
摘要: 前面已经知道了什么是托管代码、IL、元数据、程序集等,现在总体来看看咱们写的代码是在DotNet平台下是个怎么运行的... 阅读全文
posted @ 2009-01-21 09:45 Done 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 元数据是一个二进制数据块,它由几个表构成,这些表分为三个类别:定义表(definition table)、引用表(reference table)、以及清单表(manifest table)... 阅读全文
posted @ 2009-01-21 02:09 Done 阅读(615) 评论(0) 推荐(0) 编辑
摘要: 不安全代码就是要写在unsafe命名空间下,对内存地址直接操作的代码。在默认情况下C#编译器生成的是安全代码,在编译不安全代码时,C#编译器要求我们使用/unsafe编译器开关来编译源代码,在IDE中,选中“项目属性->生成”里的“允许不安全代码”,编译时就会自动加上/unsafe选项。 阅读全文
posted @ 2009-01-20 17:06 Done 阅读(468) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 下一页