1. 方法和类 1.1. 使用ref和out参数 通过使用ref和out关键字,可以以引用的方式传递任何类型的值,这样做,将允许方法改变调用者中的实参值。 为什么需要以引用方式来传递值类型? 1.1.1. 使得方法能够改变其实际参数值 1.1.2. 允许方法有多个返回值 1.2. ref程序 1.2.1. 一个使用ref关键字的典型例子是swap()函数,其功能是将两个整数值互换,并且没有任何返回值。 1.3. Out 程序 1.4. 数量可变的参数 params int[] nums 1.4.1. Note:在方法含有常规参数和params参数时,params参数必须位于参数列表的{zh1}端。而且,在任何情况下,都只能有一个params参数。 1.5. 返回类型为对象的一个应用就是类工厂 1.6. Static 关键字,当讲成员声明为static时,它可以再累的对象创建之前被访问,而不需要引用对象名。方法和变量都可以声明为static。 1.6.1. Note:静态成员不能通过对象引用访问,他必须通过类名来访问! 1.6.2. Note:当类加载时,静态变量初始化。如果没有显式地指定它的初始值,那么数值类型的变量将初始化为0,对象引用则赋值为null,bool类型的变量将初始化为false。 1.6.3. Note:限制——静态方法没有this引用;静态方法只能直接调用其他静态方法;静态方法只能直接访问静态数据。 1.6.4. 用静态方法来保存现有对象数量值,并通过对静态变量的访问来判断现有对象是否已经生成。 1.6.4.1. Winform程序编写时,经常要判断某个form是否已经生成,如果已经生成了就不要再生成新的实例,如果没有生成过实例就再将其初始化一次。 1.6.5. 静态构造函数:静态构造函数通常用于初始化属性,这些属性应用于类而不是应用于实例。因此它用来在创建类的任意对象之前,初始化类的部分内容。 1.7. 静态类:C# only 1.7.1.1. Note:不允许创建静态类的对象;静态类只能包含静态成员。 2. Object类 2.1. 可以作为通用数据类型 2.2. 装箱和拆箱 3. 接口、结构和枚举 3.1. 接口:C#最重要特性之一——它仅定义一组方法由类负责其具体实现,也就是说,接口只是单纯的逻辑构件,仅描述功能而不涉及任何具体实现。 3.1.1. 接口——多态性“一个接口,多个方法”的概念 4. 异常处理 4.1. Try。。。catch。。。: 4.1.1. 一个try后可以接多个catch,每个catch对应不同的exception 4.1.2. try模块可以嵌套 4.2. finally无论try catch模块执行后什么结果,finally模块下的代码都会执行。 4.3. Exception的主要属性:Message、StackTrace和TargetSite 4.3.1. Message中的字符串描述了错误出现的原因 4.3.2. stackTrace 中的字符串描述了导致异常的一连串调用 4.3.3. TargetSite中的对象则指明产生异常的方法的 4.3.4. 调用 Exception exc;exc.StackTrace;exc.Message;exc.TargetSite; 4.4. Checked 和unchecked 4.4.1. Checked:测试表达式中是否产生了溢出checked(expr)(检查可能溢出的表达式);checked{//statements to be checked}; 4.4.2. Unchecked:忽略溢出 unchecked(expr);unchecked{} 4.4.3. 如果使用checked进行检查,发生异常的时候直接输出系统异常;如果使用unchecked就是即使发生了异常,系统也不会抛出,而是将异常的结果截断。 |