摘要: 1.实例构造器[.ctor] 默认情况下,对于引用类型,如果我们没有显示的定义实例构造器,则C#编译器会为我们定义一个无参的公有实例构造器。 一个类的实例构造器在访问基类的继承字段之前,必须调用基类的实例构造器,C#编译器会自动产生对基类默认构造器的调用代码。 特殊情况下类型实例的创建不会调用实例构 阅读全文
posted @ 2011-03-29 18:10 Timetombs 阅读(810) 评论(0) 推荐(0) 编辑
摘要: 1.无参属性 当定义一个属性时,编译器会在生成的托管模块中产生一下3项: 1:get访问器方法,定义get时才有; 2:set访问器方法,定义set时才有; 3:关于属性的元数据,这项总是存在; 这写元数据信息中包括一些标记和属性类型,并有一个对get和set访问器方法的引用,仅仅为属性和它的访问器 阅读全文
posted @ 2011-03-29 13:28 Timetombs 阅读(677) 评论(0) 推荐(0) 编辑
摘要: 1.对象的等值性和唯一性 Object的Equals[虚]方法判断两个对象是否相等; Object.ReferenceEquals判断两个对象是否指向同一引用[严格意义上的相等、对象的唯一性]。 2.对象的散列码 Object的GetHashCode[虚]方法返回一个Int32类型的散列码,当重写E 阅读全文
posted @ 2011-03-29 13:06 Timetombs 阅读(758) 评论(0) 推荐(0) 编辑
摘要: 1.基元类型 编译器直接支持的数据类型成为基元类型。基元类型与FCL中的类型有直接的映射关系[int=Int32],这样我们可以简化的方式书写代码,并且编译后的IL和直接使用FCL中的数据类型是完全相同的。 Checked和Unchecked操作: CLR只在32位和64位上进行算数运算,所以b首先 阅读全文
posted @ 2011-03-29 12:33 Timetombs 阅读(724) 评论(0) 推荐(0) 编辑
摘要: 1.System.Object CLR要求每个类型都要继承自System.Object[直接或者间接方式],如果不显示继承,编译器会自动为我们添加对System.Object的继承。 System.Object提供几个公有实例方法: Equals:如果两个对象具有相同的值,返回true; GetHa 阅读全文
posted @ 2011-03-29 11:38 Timetombs 阅读(1002) 评论(0) 推荐(0) 编辑