1、ACCP V4.0第二章C#基础知识 ACCP V4.0本章目标q数据类型 q变量常量的定义q数组q类型转换q运算符q控制结构2ACCP V4.0数据类型q在 C#中没有数据类型,只有数据类型的映射qC#中使用的数据类型都是 MSIL数据类型的映射q 因为 C#源文件最终编译为 MSIL代码,因此在 C#源文件中使用 MSIL数据类型也可以qint在 C#只是 Int32的一个别名而已3ACCP V4.0数据类型q数据类型分类:值类型,引用类型q基本值类型包括: int、 uint、 short、 ushort、 long、 ulong、 float、 double、 decimal 、 bo
2、ol、 char、 byte, sbyte、q基本引用类型: string, object4ACCP V4.0数据类型5ACCP V4.0值类型数据类型q 值类型:所有的值类型都继承自 System.ValueType类qValueType类:实际上 ValueType是一个继承自 object的类,所有的值类型都默认继承自 ValueType。q 所有都值类型都是 .Net平台上定义的结构( struct)6ACCP V4.0引用数据类型 -objectq 基本引用类型包括: object, stringq 在 C#中, object是所有类型的父类q 在 object类中没有字段,只有方法
3、q 公开的方法有Equals 比 较 两个 对 象是否内容相同GetHashCode 用作特定 类 型的 Hash函数GetType 得到当前 实 例的 TypeReferenceEquals 比 较 两个 对 象是否是一个 对象ToString 得到当前 对 象的字符串表达形式7ACCP V4.0值类型变量的定义q 定义一个值类型的变量:q int i=12;/使用 C#的别名定义一个变量q Int32 i=new Int32();/使用 MSIL的数据类型定义一个变量q 以上两句是等价的qInt32这种类型是否类似于 Java中的包装类?q 从方法属性的角度类似q Int32在内存中开辟的
4、空间在栈区,而包装类开辟的空间在堆区q 值类型也有方法原因是它从 object类继承而来8ACCP V4.0引用类型变量的定义q 定义一个引用类型的变量:q Student stu;/定义一个 Student类型的引用stu=new Student();/实例化 Student并将对象的地址赋给 stu引用q Student stu=new Student();q 以上两句是等价的9ACCP V4.0常量的定义q 不能使用 static修饰符q 只能在定义的时候初始化q 定义一个值类型的常量:q public const int MONDAY 1;q public const int TUESDAY 1+MONDAY;q 定义一个引用类型的常量:q public const Student stu=new Student();q public const string s=“ACCP”;10