C#程序设计基础 第二章 数据类型
C#数据类型 值类型 简单类型:整数 字符 实数 布尔 复合类型:结构 枚举
null和void null void null值表明变量不引用任何有效的对象。 null值只能赋给引用类型、指针类型和可空类型。 表示没有类型,或者没有任何值。 在c#语法要求指定一个数据类型,但不传递任何数据时,可以使用void关键字。 Void 本质上不是一个数据类型,只是指出没有数据类型的事实。
整数、实数、字符和布尔类型 整数类型:sbyte、byte、short、ushort、int、uint、long、ulong和char。 布尔类型bool:表示的逻辑变量,只有两种取值:“真”或“假”,采用“true”和“false”两个值来表示。 字符类型包括数字字符、英文字母和表达符号等。 实数类型包括浮点类型和十进制类型: 浮点类型包括单精度类型(float)型和双精度类型(double)。 十进制类型(decimal): 十进制类型适合应用在不能接受舍入误差的计算中。
C#内置类型 .NET 类型. 描述 bool System.Boolean 该类型仅有两个可能取值:true 和false 。例如,bool blnA = true; 默认值为 false。 byte System.Byte 表示无符号8位整数,取值范围:0~255。例如,byte byteA = 255; 默认值为0。 sbyte System.SByte 表示8位整数,取值范围:-128 到 127。默认值为0。 char System.Char 表示一个Unicode 字符(16位),取值:U+0000~U+FFFF。可以采用多种不同的赋值格式,例如下面的语句。 char MyChar = ‘X’;char MyChar =’\x0058’;char MyChar =(char)88;char MyChar =’\u0058’; 默认值为”\0” decimal System.Decimal 表示一个128位的数值,取值范围:±1.0e-28~±7.9e28 ,精确度:28~29位小数。例如,decimal MyMoney=100.5m;后缀m或M表示decimal数值,如果没有这个后缀,则该数值被认为是double数值。默认值为0.0M。 double System.Double 表示一个64位浮点数,取值范围:±5.0e-324~±1.7e308;精度:15~16位小数。默认值为0.0D(D或d为double类型的后缀) float System.Single 表示一个32位浮点数,取值范围:±1.5e-45~±3.4e38,精度:7位小数。默认值为0.0F。 int System.Int32 表示一个32位整数,取值范围:-2 147 483 648~2 147 483 647,默认值为0。 uint System.UInt32 表示一个32位无符号整数,取值范围0~4 294 967 295。默认值为0。 long System.Int64 表示一个64位整数,取值范围:-9 223 372 036 854 775 808~ 9 223 372 036 854 775 807。默认值为0。 ulong System.UInt64 表示一个64位无符号整数,取值范围:0~18 446 744 073 709 551 615。默认值为0。 short System.Int16 表示一个16位整数,取值范围:-32 768~32 767。默认值为0。 ushort System.UInt16 表示一个16位无符号整数,取值范围:0~65535。默认值为0。
结构类型 把一系列相关的变量组织成为一个单一实体的类型称为结构类型,每一个变量称为结构的成员。 例:将一个点的x坐标和y坐标组成一个点结构类型。结构是使用struct关键字定义的,定义一个点结构类型point的代码如下: struct Point { public int x,y; //定义字段 }
结构举例 using System; namespace Example { class Program static void Main(string[] args) SPoint s1 = new SPoint(); s1.x = 0; s1.y = 0; s1.DisplayPoint(); SPoint s2 = s1; s2.x = 5; s2.y = 10; } struct SPoint public int x; public int y; public void DisplayPoint() Console.WriteLine("类变量c1: x={0}, y={1}", x, y);
枚举类型 枚举(enum)类型由一组命名常数组成,这组命名常数称为枚举列表;每一个枚举类型都具有一个底层基本类型。 底层基本类型必须是内置的有符号或无符号整数类型(如Int16、Int32或Int64)。枚举元素的默认类型为int,并且在默认情况下,第1个元素的值为0,后续的元素依次递增1。 例如,在下面的枚举变量color中,Red=0、Green=1,依次类推。 enum color{Red,Green,Blue,White,Black}; 在声明枚举变量时还可以指定底层的基本类型,例如下面的语句,指定long为底层的基本类型。 enum Range:long {Max = 2147483648L,Min = 255L};
枚举举例 //程序清单P2_5.cs: using System; namespace P2_5 { class EnumSample public static void Main() Weekday w1; w1 = Weekday.Monday; Console.WriteLine(w1); w1 = w1 + 1; w1 = (Weekday) 4; } enum Weekday Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
引用类型 类 与结构类似,不同点为结构是值类型,类是引用类型。 接口 应用程序之间相互调用的协议,被调用一方在协议中对自已能提供的服务进行描述,另一方在调用之前,先检查协议存在哪些服务,其中哪些能满足自已的要求。 委托 类似C++中的指针,用于封装对一个或多个方法的引用。 数组 (在后面介绍)
类举例 using System; namespace Example { class Program static void Main(string[] args) CPoint c1 = new CPoint(); c1.x = 0; c1.y = 0; c1.DisplayPoint(); CPoint c2 = c1; c2.x = 5; c2.y = 10; } class CPoint public int x; public int y; public void DisplayPoint() Console.WriteLine("类变量c1: x={0}, y={1}", x, y);