02 2007 档案
第12章 文本处理 (1)
摘要:12.1 字符一个字符由一个System.Char结构实例表示,该类型提供了两个常数字段:MinValue(0x0000)和MaxValue(0xFFFF)Char的静态方法GetUnicodeCategory以一个Char实例作为参数,返回一个System.Globalization.UnicodeCategory枚举值,我们可以根据该枚举值判断传入的字符的类型Char类型还提供有其他几个静态方... 阅读全文
posted @ 2007-02-14 15:34 jiangnii 阅读(654) 评论(0) 推荐(0)
第11章 事件
摘要:11.1 发布事件classMailManager{//1、在MailManager内部定义MailMsgEventArgs类型publicclassMailMsgEventArgs:EventArgs{//传递给事件接受者的类型定义信息publicMainMsgEventArgs(Stringfrom,Stringto,Stringsubject,Stringbody){this.from=fr... 阅读全文
posted @ 2007-02-13 17:24 jiangnii 阅读(365) 评论(0) 推荐(0)
第10章 属性
摘要:10.1 无参属性无参属性(parameterless property)就是通常说的属性(property)。CLR支持静态属性、实例属性和虚属性。属性可以标记任何的访问限定修饰符,也可以被定义在接口中。属性不能被重载定义一个同时带get和set方法的属性时,编译器会在生成的托管模块中产生一个表示属性的get访问器方法和一个表示属性的set访问器方法,以及一个位于托管模块元数据中的属性定义,其中... 阅读全文
posted @ 2007-02-13 14:53 jiangnii 阅读(423) 评论(0) 推荐(0)
第9章 方法 (2)
摘要:9.5 引用参数CLR假设所有的方法参数都是按值传递,当参数为引用类型的对象时传递的是引用/指针的值,而值类型对象传递的是对象实例的一个拷贝C#中我们可以用out和ref关键字指定方法按引用的方式传递参数,从IL或CLR的角度来看out和ref关键字的行为实际上是一样的,二者的不同之处在于编译器会根据它们选择不同的机制来确保代码的正确性。开发时指定out和ref的好处是可以清晰的表示开发者的意图C... 阅读全文
posted @ 2007-02-13 11:57 jiangnii 阅读(216) 评论(0) 推荐(0)
第9章 方法 (1)
摘要:9.1 实例构造器CLR要求每个引用类型至少定义一个实例构造器。在创建一个引用类型的实例时,系统首先为该实例分配内存,然后初始化对象的附加成员(即方法表指针和一个SyncBlockIndex),最后调用类型的实例构造器设置对象的初始化状态对于引用类型,默认情况下如果没有显式定义实例构造器,许多编译器包括C#都会自动定义一个公有的无参构造器少数几种情况下,类实例的创建不需要调用实例构造器,如调用Ob... 阅读全文
posted @ 2007-02-12 18:17 jiangnii 阅读(251) 评论(0) 推荐(0)
第8章 常数与字段
摘要:8.1 常数常数通常只能是编译器认为的基元类型,在编译时编译器将常数的值保存在其所定义模块的元数据内。枚举类型由于本身以基元类型形式存储,故也可以被用来定义常数。(这里枚举以基元类型存储不知道是指在CTS里都是这样还是特指C#里的做法)常数总是被认为是类型的一部分而非实例C#不允许为常数指定static关键字,因为常数隐含为static因为常数是在编译时被直接把值嵌入到IL代码中,而不是运行时加载... 阅读全文
posted @ 2007-02-12 13:44 jiangnii 阅读(217) 评论(0) 推荐(0)
第7章 类型成员及其访问限定
摘要:7.1 类型成员一个类型可定义零个或多个以下成员:常数、字段、实例构造器、类型构造器、方法、重载操作符、转换操作符、属性、事件、类型 7.2 访问限定修饰符和预定义特征访问限定修饰符指出了哪些类型和成员可以被其他的代码合法地引用,预定义特征则在访问限定修饰符的基础上为我们提供了更多的选择,并允许我们改变一个成员的语义 C#中可应用与类型、字段和方法的访问限定修饰符有:private、protect... 阅读全文
posted @ 2007-02-12 12:48 jiangnii 阅读(271) 评论(0) 推荐(0)
第6章 通用对象操作
摘要:6.1 对象的等值性与唯一性System.Object类型中的Equals方法是比较两个引用,如果指向的是同一个对象则返回true,否则在任何其他情况下都返回false 当重写自己的Equals方法时,必须确保它遵循以下4条规则: 1、Equals方法必须是自反的,也就是说x.Equals(x)必须返回true 2、Equals方法必须是对称的,也就是说x.Equals(y)和y.Equa... 阅读全文
posted @ 2007-02-12 10:17 jiangnii 阅读(255) 评论(0) 推荐(0)
第5章 基元类型、引用类型与值类型 (2)
摘要:5.2 引用类型与值类型引用类型(reference type)总是从托管堆上分配,而值类型通常分配在线程堆栈上,不受垃圾收集器的控制,减少了托管堆的压力以及应用程序在整个生存期中需要垃圾回收的次数 所有的值类型都继承自System.ValueType,而System.ValueType继承自System.Object。它重写了System.Object中的Equals方法和GetHashCode... 阅读全文
posted @ 2007-02-09 23:09 jiangnii 阅读(263) 评论(0) 推荐(0)
第5章 基元类型、引用类型与值类型 (1)
摘要:5.1 基元类型编译器直接支持的数据类型称为基元类型(primitive type),编译器允许我们用某种简化的语法来操作它们 基元类型和FCL中的类型有直接的映射关系,如C#中把int直接映射为System.Int32类型 C#中有如下一些基元类型:sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, b... 阅读全文
posted @ 2007-02-09 15:51 jiangnii 阅读(337) 评论(0) 推荐(1)
第4章 类型基础
摘要:4.1 所有类型的基类型:System.Object公有方法:Equals, GetHashCode, ToString, GetType保护方法:MemberwiseClone, Finalize CLR要求所有的对象(指引用对象)都要用new操作符来创建,new操作符产生 newobj IL指令,执行过程如下: 1、从托管堆(managed heap)中分配指定类型所需的内存空间 2、... 阅读全文
posted @ 2007-02-09 12:22 jiangnii 阅读(216) 评论(0) 推荐(0)