Pro C# 2008 and the .NET 3.5 Platform学习过程

全书一共分为七部分加附录

PART 1 C#和.NET平台简介

6月5日:第一天

第1章 .NET之道

第2章 构建C#应用程序

以上2章涉及概念简介……

CTS:公共类型系统,是一个正式的规范,规定了类型必须如何定义才能被CLR承载。(类,结构,借口,委托,枚举)

CLR:公共语言运行时,可以理解为执行给定编译代码单元所需的外部服务的集合。

CLS:公共语言规范,就是一套规则,清晰描述了支持.NET的编译器必须支持的最小的和完全的特征集,以生成可由CLR承载的代码,同时可以被.NET平台其他语言用统一的方式进行访问。CLS可以看成是由CTS定义的完整功能的一个子集。

      规则1:CLS规则仅适用于类型中向定义它的程序集以外的公开部分。

程序集:是自描述的。介绍其中部分内容,清单manifest,元数据metadata。

      其中清单记录了所有确保现有程序集正常工作的外部程序集、程序集版本号等。

      元数据描述了每一个二进制文件中定义的类型(类、结构、枚举等),及每个类型的成员(属性、字段、方法等) 。   

PART 2 C#核心编程结构

第3章 C#核心编程结构I

由于修改好时网断了,保存之后更新内容消失,暂就如此,第3章已经结束,下面继续。

6月6日:第二天

第4章 C#核心编程结构II

方法参数修饰符:无,按值传递(pass by value),意味着被调用的方法收到原始数据的一份副本。

(out,ref)这两个都是pass by reference按引用传递。params必须是参数的最后一个,而且可以作为一组可变参数的单独逻辑参数进行传递。

如果按引用传递引用类型,被调用者可能改变对象的状态数据的值和所引用的对象。(有参数修饰符,比如ref,out)

如果按值传递引用类型,被调用者可能改变对象的状态数据的值,但不能改变所引用的对象。(无参数修饰符)

6月7日:第三天

第5章 定义封装的类类型

在实例级别的构造函数中赋值给静态数据成员,每次新建对象的时候值都会被重置。

静态构造函数是特殊的构造函数,并且非常使用于在编译时未知的静态数据的值(例如,我们需要从外部文件读取值或者生成随机数)。

OOP3大支柱:封装(encapsulation),继承(inheritance),多态(polymorphism)。

在OOP中还有另一种形式的代码重用:包含/委托模型(也就是has-a关系,或称聚合)。这种重用的形式不是用来建立父类/子类关系的。它意味着,一个类可以顶一个另一个类的成员变量,并向对象用户直接公开它的功能(如果需要的话)。

第6章 继承和多态

抽象基类的多态接口只是指一组虚的或者抽象的方法。

关于重写System.Object.Equals()方法:

      如果对象用作hashtable中的键的话,必须重写GetHashCode()方法;如果不是但是进行比较的是对象的状态而不是引用的也必须重写GetHashCode()方法,否则可以直接继承Object的GetHashCode()方法。

6月8号:第四天

第7章 结构化异常处理

系统级异常和应用级异常

系统级异常:.NET平台引发的异常被称为系统级异常。这些异常被认为是无法修复的致命错误。系统级异常派生自名为System.SystemException的基类。作用:当一个异常类型派生自System.SystemException时,我们就能够判断引发该异常的实体是.NET运行库而不是正在执行的应用程序代码库。

内部异常:记录内部异常通常仅仅在调用者能够在首次发生异常时将其更恰当地捕获处理的情况下才有用,下面举个例子

 

Code

 

在此例中如果调用者的catch块逻辑能够利用InnerException属性来获取内部异常对象的详细信息的话,记录内部异常才有用。

6月9日:第五天

第八章 对象的生命周期

第九章 接口

第十章 集合与泛型

6月10日:第六天

第十一章 委托、事件和Lambda

 

 

posted @ 2009-06-05 13:25  逍遙  阅读(342)  评论(0编辑  收藏  举报