摘要: 1、Equals、ReferenceEquals、== · Equals方法对于值类型和引用类型的定义不同,对于值类型,类型相同,并且数值相同,则Equals返回true,否则返回false。而对于引用类型,默认的行为与ReferenceEquals的行为相同,仅有两个对象指向同一个Reference的时候才返回true · ReferenceEquals是Object的静态方法,用于比较两个引用类型的对象是否是对于同一个对象的引用,对于值类型它总是返回false · 对于内置值类型,==判断的是两个对象的代数值是否相等。它会根据需要自动进行必要的类型转换,并根据 阅读全文
posted @ 2010-10-18 12:33 RockyXiang 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 1、new · 创建对象和调用构造函数; · 向基类隐藏继承成员;Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 class Number 2 { 3 public static int i = 1; 4 public virtual void Show() 5 { 6 Console.WriteLine("base class"); 7 } 8 public virtual void ShowN 阅读全文
posted @ 2010-10-18 12:32 RockyXiang 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 1、值类型和引用类型 · 值类型实例分配在线程的堆栈上,并且不包含任何指向实例数据的指针,因为变量本身就包含了其实例数据; · 值类型实例总分配在它声明的地方,声明为局部变量时其被分配在堆栈上,声明为引用类型成员时其被分配到托管堆上。 · 通常可以用Type.IsValueType来判断一个变量的类型是否为值类型; · .NET中以操作符ref和out来标识值类型按引用方式传递,其中区别是:ref在参数传递之前必须初始化,而out则在传递前不必初始化,且在传递时必须显示赋值; · sizeOf()运算符用于获取值类型的大小,但是不适用于引用类型 阅读全文
posted @ 2010-10-18 12:31 RockyXiang 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 1、CLR管理内存的区域 线程的堆栈:用于分配值类型实例,主要受操作系统管理,不受垃圾收集器的控制,当值类型实例所在方法结束后将自动释放资源。栈的执行效率高,但存储容量有限; GC堆:分配小的对象实例,当有内存分配或者回收时,垃圾收集器可能会对GC堆进行压缩; LOH(Large Object Heap)堆:用于分配大对象实例。如果引用类型对象的实例大小超过85000个字节时,则将被被分配到LOH上。2、何时垃圾回收 · 内存不足溢出时; · 调用GC.Collect方法强制执行垃圾回收; · windows报告内存不足时,CLR将强制执行垃圾回收; · 阅读全文
posted @ 2010-10-18 12:30 RockyXiang 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 面向对象设计的原则 多聚合,少继承 低耦合,高内聚1、单一职责原则(SRP,Single Responsibility Principal) 一个类,应该仅有一个引起它变化的原因。不要将变化原因不同的职责封装在一起,而应该分离。这遵循了“高内聚、低耦合”的思想。 避免将相同的职责分散在不同的类中,和避免一个类实现了过多的职责一样重要。2、开放封闭原则(OCP,Open Closed Principal) 对修改封闭:意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。 对扩展开放:意味着如果有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。 实现开放封闭的核心思想就是 阅读全文
posted @ 2010-10-18 12:29 RockyXiang 阅读(270) 评论(0) 推荐(0) 编辑
摘要: .NET框架 规范——公共语言架构(CLI,Common Language Infrastructure),主要包括通用类型系统(CTS,Common Type System),公共语言规范(CLS,Common Language Specification),通用中间语言(CIL,Common Intermediate Language)。 规范的实现——公共语言运行时(CLR,Common Language Runtime)和 .NET框架类库(FCL,Framework Class Library)。 1、封装的深入理解 · 字段通常定义为private,属性通常定义为publ 阅读全文
posted @ 2010-10-18 12:28 RockyXiang 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 话说第一次阅读王涛兄的《你必须知道的.NET》已经是一年前了,但是个中文字还是值得反复品位,最近又把这书翻来重读了一遍。。 这个笔记是当时看的时候留下来的,没有根据书的章节,而是根据自己的理解,把相关的知识点划归在了一起,在此给大家作个分享吧,谨以此系列献给所有没有读过《你必须知道的.NET》,读过了但是需要温故而知新,或是备案方便以后查漏补缺的园友们。 知道园子里的牛人众多,但俗话说“万丈高楼平地起”,所以基础还是灰常重要的,其实这一点从各大公司面试的题目也能看得出来。 好了,话不多说,下面就献上俺的六道小菜吧: 你必须知道的.NET读书笔记分享——.NET框架及面向对象基础 你必须知道的. 阅读全文
posted @ 2010-10-18 12:27 RockyXiang 阅读(199) 评论(0) 推荐(0) 编辑