网站大量收购独家精品文档,联系QQ:2885784924

第14章深入理解C语言.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
反射 反射Reflection ReflectionTest.cs 5 对象构造与析构 构造方法 构造方法的初始化部分,使用this及base 调用本类或父类的构造方法 不用this且不用base,则会自动认为base() class A{ A(int a){} } class B : A{ B(String s ){} //编译不能通过 } ConstructCallThisAndBase.cs 域的初始化 域的初始化中不能引用this 在base被调用之前不能引用 this class B : A{ int x = 1; int M(){ return 1; } int y = x+M(); //Error B():base(x){} //Error } 构造方法的执行过程 执行过程 若有this(…),转向之 执行域的初始化 转到base 执行方法体 应避免在构造方法中调用任何虚方法 ConstructorExecution.cs 第14章 深入理解C#语言 内容提要 类型与转换 变量及其传递 多态与虚方法调用 动态类型确定 对象构造与析构 csharp语言新特性 1 类型与转换 数据类型 C#的数据类型分值类型(Value Type)和引用类型(Reference Type)两大类 值类型包括 简单类型(Simple Type) 结构类型(Struct Type) 枚举类型(Enum Type) 引用类型包括 类类型(Class Type) 数组类型(Array Type) 指代类型(Delegate) Reference and Value Types Reference引用型 (Class) Value 值 (Struct) 分配 Heap 堆 Inline 栈 默认值 Null Zeroed = 的含义 复制引用 复制值 变量中的内容 引用 实际值 123 i s Hello world int i = 123; 123 j t int j = i; string t = s; string s = Hello world; 示例 ClassStruct.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 运算符 Student s = p as Student; 可能成功,也可能为null AsObject.cs 引用类型与值类型的转换 int i = 123; object o = i; int j = (int) o; 123 i o 123 System.Int32 } “Boxing” } “Unboxing” j ? 123 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, one); DateTime d = DateTime.Now; String s = d.ToString(); // no box int[] a = new int[2]; a[0] = 33; // no box ArrayList a = new ArrayList(); a.Add(33); // box here 2 变量及其传递 域变量及局部变量 类static变量 相当于类中的“全局变量” 域变量 相当于对象中的变量 局部变量 在函数体及其{}中,在栈中分配,自动消失 域变量自动有初值,局部变量则不 LocalVarAndMemberVar.cs 按值传送的参数 按值传送 要注意值类型与引用类型 TransByValue.cs TransByValueStructClass.cs ref参数及out参数 ref参数在传之间必先赋值 out参数在函数中必须赋值后才能返回 表达式及对象的属性不能作ref及out参数 T

文档评论(0)

189****1620 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档