ASP.NET-第四天-加强课程

第四天

在程序中实现多态时(前提继承), 需要使用父类的实例时使用虚方法反之抽象类(同一系列)而当不同系列具有相同功能的时候此时实现多态就要用到接口----抽象共同功能.

面向对象的核心:  一个思想(实现多态)   一种方式(继承)   三个方针 (虚方法.  抽象类,  接口)

延伸面向接口面向抽象核心-------方法功能也是对象

 

显示实现接口后,被实现的方法变成了私有的private, 访问不到了,通过接口就能显示了;

向上转型尽量让代码更加抽象;   能用父类表示的就不用子类

 

枚举:

1.一般枚举都是互相排斥的同时只能有一个值

2.枚举中的每个值都有一个对应的数值来表示;

2.1 默认数值为整型,默认从0开始依次递增,可以手动设置每个枚举对应的整数;

 

3.枚举在编译完成后就已经用对应的数值常量来表示了

 

将字符串转换成枚举类型:    字符串必须是枚举中已经定义过的

 

定义枚举时在后面加个 : byte 可以指定枚举中的数字类型只能是byte类型 范围在0--255之间;

为枚举赋值:

 

定义枚举:

 

[flags]标志枚举加上这个特性后枚举类型 ,tostring() 返回的就是文字形式,不是数字了

 

 

 

结构体

结构与类的最大区别:

结构是值类型;

类是引用类型;

一种值类型,不具有面向对象的特征,通常用来封装小型相关变量

结构是不能继承的,但可以实现接口;

如果需要面向对象的特性如果存储的数据量大  使用类

如果存储的数据量小不需要面向对象特性则使用结构

 

鼠标指向地方的坐标显示在窗口的标题中

 

×只有在内存中存储的有交集的类型之间才能进行显示类型转换

 

字符串的转换

tryparse进行判断转换,成功则返回正确的值错误就返回0;

 

Convert可以吧任意类型转换为任意类型,只要格式正确;

 

使用某种类型时一定要使用符合CLS的类型,CLS为公共语言;

数组字符串类 ,接口 为引用类型;

所有的引用类型都继承自object ;

所有的值类型都继承自system. ValueType    而它又继承自object

数值类型, bool 结构枚举 等  值类型赋值就是一种拷贝;

 

对于值类型来说栈中存储的就是直接使用的数据,

对于应用类型来说栈中存储的是堆中对象的地址;

参数初读的时候:

1.值传递传递的是栈中保存的数据;

2.引用传递传递的是栈中本身的地址;

 

程序异常现象:

1.语法错误一般编译器会帮我们解决;

2.逻辑错误编译没有问题,结果不对,写错;

3.在运行时发生的错误,叫异常异常一般会导致程序崩溃    //空指针异常未将对象引用设置到对象的实例

4.报异常:试图除以零.  除数不能为0;

5.输入字符串的格式不正确,

 

处理异常:

把可能发生异常的代码用Try包围起来;

try--catch语句块后面加上finally{}程序无论是否发生异常都会执行{}中的代码所以一般会将释放资源的代码放在这里,这样会保证一定能被执行;  就算是在try中有return,也会被执行,

1.参数是:exception,表示可以捕获所有异常,并指出异常

Catch(Exception  ex)

{

Console.writeline(异常 {0}, ex.message);

}

2.表示只能捕获空指针异常,只能单独捕获指定的异常;

2.1 其实就是对不同的异常分别捕获,可以对不同的异常单独处理;

Catch (nullreferenceException  ex)

Catch (dividebyzeroException  ex)

想要使用多个捕获异常的语句先写单独的异常处理语句再写exception语句

Exception 是所有异常类的基类,祖宗类

Throw 手动抛出异常;

尽量避免抛出异常;

,

 

函数返回值:

1.params 可变参数  ,如果不为可变参数传值,则可变参数的数组是一个产度为0的数组但是不是null ;  当一个方法中有多个参数时并且还包含可变参数时可变参数只能放在最后面;  可以一个一个传值也可以将数组传过去;

2.Ref .在参数传入之前必须先声明 并赋值 ,

3.Out 参数在方法中必须赋值当一个方法同时要返回多个参数时,可以考虑使用out参数;

因为out参数在方法中必须赋值所以调用者方 的传递者可以不赋值,

即便在传递out参数时,赋值也不能用

 

out 让函数可以输出多个值

1.在方法中必须为out参数赋值

2.out参数的变量在传递之前不需要赋值,即使赋值了也不能在方法中使用。(赋值没意义)

ref

参数在传递之前必须赋值

在方法中可以不为ref参数赋值,可以直接使用。

 

ref应用场景内部对外部的值进行改变,out则是内部为外部变量赋值,out一般用在函数有多个返回值的场所。

posted @ 2012-12-08 22:01  云那边  阅读(198)  评论(0编辑  收藏  举报