------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
-->C#面向对象是相对于面向过程而言的,面向过程强调的是功能行为,完成任务由多个方法完成;面向对象将功能进行封装,完成任务由对象来完成。
-->知识点1:异常处理。一般的就是通过try-catch来实现异常处理或者加上finally。通过:throw new Exception("异常信息");来抛出异常。
------------------实际上异常也是有一个类——Exception类,比如try {...} catch(Exception) {Console.WriteLine(ex.Message); } throw new Exception ("出错了!");,底层类似于Exception ex=new Exception ("出错了!");。注意当异常向上抛的时候,如果上方没有代码对其进行处理,那么该异常就会一直往上抛,直到接收或者抛到操作系统为止。
-->知识点2:构造方法与属性的区别:本身两者就不是同一个层次的东西,切记不要混淆,构造方法是一种行为,而属性是一个特征,一个值,可以读取和和被赋值;构造方法是一种从无到有的过程,从没有对象到创建一个对象,并且分配内存空间,并对对象的字段初始化,只在创建对象时使用,属性是在创建对象之后和释放对象之前才使用。
-->知识点3:熟练掌握字符串方法:ToLower()、ToUpper()、Trim()、Compare()、Equals()、Join()、Split()、Contains()、IndexOf()、IndexOfAny()、LastIndexOf()、Substring()、Insert()、Remove()、Replace()以及string.Format()。并记住字符串的不可变性,上述方法只是重新生成一个字符串并返回新字符串。
-->知识点4;引用类型与值类型。比如结构:struct SPerson { public int age; public int height; },类class CPerson { public int age; public int height; }。
-----------------使用结构必须对其所有成员赋值:SPerson sp1 = new SPerson(); sp1.age=23; sp1.height=180;;或者通过构造方法赋值:SPerson sp1=new SPerson();。
-----------------SPerson sp2=sp1;sp1.age=25; sp1.heigt=170;。此时sp2.age的值23,sp2.height的值为180;但是如果将”结构“换成“类”,那么sp2.age的值为25,sp2.height的值为170。结构是一个值类型,而类是一个引用类型。
-----------------结构,在创建结构变量的时候,会根据结构的定义,结构定义多大,就分配多少内存空间。上面sp1赋值给sp2时,是sp1复制了一份值并赋值给sp2,两个完全不相干的变量,进行完复制和赋值操作之后,sp1和sp2就再没有任何关系了。
-----------------类,复制的时候,sp1是将地址复制一份并赋值给sp2,由于它们的值指向同一个地址,当修改任意一个变量的值时,另一个变量的值也会发生变化。
-----------------值类型是复制值并传递过程,数据类型、枚举、结构都是值类型;而引用类型是赋值引用地址并传递引用过程了,类、接口、数组都是引用类型。
-->知识点5:继承。继承符号——:,比如class Man;Person { },就代表类Man继承类Person,类Man继承类Person除了private修饰的所有字段及属性,当然也可以有自己的成员。前者称为子类或者派生类,后者称为父类或者基类。
------------------注意:继承有传递性,没有继承,就默认继承自Object类,继承了其它类也就间接继承了Object类。并且继承都是但继承,只能继承自一个类。
-->知识点6:继承类的构造方法调用顺序。如果一个类继承了另一个类,那么调用构造方法时会先调用父类的无参构造方法,再调用本类的构造方法。如果子类想要调用父类特定构造方法,就需要在本类的构造方法后面加上:base,比如public Man(string name , int age ): base( age) { }。通过加上:this调用本类的构造方法。
-->知识点7:里氏转换。子类可以无条件赋值给子类,如果父类指向的是子类,父类可以强制转换成子类。父类 父类实例=new 子类();子类 子类实例=(子类)子类实例;。
-----------------比如类Man继承类Person,类Person中个age字段,类Man继承age字段,并且有自己的字段jump。
-----------------Person p=new Person(); Man m=(Man)p;。p只能访问到age字段,无法访问到jump字段,而m不仅可以访问到age字段,也可以访问到jump字段。当子类赋值给父类的时候,父类中没有的字段会通过“处理”,然后让父类访问,而再转换成子类时,那个“处理”会去掉,让子类可以访问到。
-->知识点8:类型转换。用一个关键字:is,实例名 is 类型名,如果左边能够转换成右边,那么整个表达式的值为true,否则为false;还有一个关键字:as,实例名 as 类型名,如果左边能够转换成右边,就返回转换后的值,否则返回null。
------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------