第14章深入理解C#语言.ppt
《第14章深入理解C#语言.ppt》由会员分享,可在线阅读,更多相关《第14章深入理解C#语言.ppt(44页珍藏版)》请在三一文库上搜索。
1、第14章 深入理解C#语言,内容提要,类型与转换 变量及其传递 多态与虚方法调用 动态类型确定 对象构造与析构 csharp语言新特性,1 类型与转换,数据类型,C#的数据类型分值类型(Value Type)和引用类型(Reference Type)两大类 值类型包括 简单类型(Simple Type) 结构类型(Struct Type) 枚举类型(Enum Type) 引用类型包括 类类型(Class Type) 数组类型(Array Type) 指代类型(Delegate),Reference and Value Types,int i = 123;,int j = i;,string t
2、 = s;,string s = “Hello world“;,示例,Class&Struct.cs,值类型的转换,数字类型之间可以互相转化 隐式转换 float f = 3; 显式转换 int i = (int)3.14; 整型提升 sbyte a=1,b=2; a+b为int型 枚举类型与数字类型之间可以显式转换 结构类型之间不能转换,引用类型转换,显式或隐式转换(都要求有继承关系) Person p = new Student(); /隐式转换 Student s = (Student) p; / 显式转换 可能转成功,也可能异常 IRunnable r = p; /隐式转换 as 运算
3、符 Student s = p as Student; 可能成功,也可能为null,AsObject.cs,引用类型与值类型的转换,int i = 123; object o = i; int j = (int) o;,Boxing and unboxing,Unboxing必须显式转换,BoxingTest.cs,int total = 35; string s = String.Format( “Your total was 0 on 1“, total, date); Hashtable t = new Hashtable(); t.Add(0, “zero“); t.Add(1, “o
4、ne“); DateTime d = DateTime.Now; String s = d.ToString(); / no box int a = new int2; a0 = 33; / no box ArrayList a = new ArrayList(); a.Add(33); / box here,2 变量及其传递,域变量及局部变量,类static变量 相当于类中的“全局变量” 域变量 相当于对象中的变量 局部变量 在函数体及其中,在栈中分配,自动消失 域变量自动有初值,局部变量则不,LocalVarAndMemberVar.cs,按值传送的参数,按值传送 要注意值类型与引用类型
5、TransByValue.cs TransByValueStructClass.cs,ref参数及out参数,ref参数在传之间必先赋值 out参数在函数中必须赋值后才能返回 表达式及对象的属性不能作ref及out参数 TransByRef.cs RefSwap.cs TransByOut.cs RefColorRGB.cs,param参数,数组参数(相当于VB的可变参数) 参数必须放在最后 调用时,可用数组,也可用多个参数 定义: double Multi( params double nums ) 调用 Multi(); Multi( 27 ); Multi( 3.14, 0.9, 0.9
6、 ); Multi( 1,2,3,4,5); Multi( new double 1,2,3,4,5 );,ParamsTest.cs,3 多态与虚方法调用,多态(Polymorphism),在面向对象的系统中,多态性是一个非常重要的概念,它允许客户对一个对象进行操作,由对象来完成一系列的动作,具体实现哪个动作、如何实现由系统负责解释。 在C#中,多态性的定义是,同一操作作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的执行结果。C#支持两种类型的多态性。,4-2,两种类型的多态性,编译时的多态性 编译时的多态是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返
7、回的类型等信息决定实现何种操作。 运行时的多态性 运行时的多态性是指直到系统运行时,才根据实际情况决定实现何种操作。C#中,运行时的多态性通过虚成员实现。 编译时的多态性提供了运行速度快的特点,而运行时的多态性则带来了高度灵活和抽象的特点。,上溯造型与虚方法调用,VirtualInvokeShape.cs,static void doStuff( Shape s ) s.draw(); Shape c = new Circle(); Shape r = new Rectangle(); Shape s = new Square(); doStuff(c); doStuff(r); doStuf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 14 深入 理解 C# 语言
链接地址:https://www.31doc.com/p-3420977.html