CSharp数据类型.ppt_第1页
CSharp数据类型.ppt_第2页
CSharp数据类型.ppt_第3页
CSharp数据类型.ppt_第4页
CSharp数据类型.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C#数据类型,C#的数据类型可以分为3类:数值类型、引用类型、指针类型。指针类型仅在不安全代码中使用。 值类型包括简单类型(如字符型、浮点型和整数型等)、集合类型和结构型。引用类型包括类类型、接口类型、代表类型和数组类型。 值类型和引用类型的不同之处是值类型的变量值直接包含数据,而引用类型的变量把它们的引用存储在对象中。对于引用类型的变量,完全有可能让两个不同的变量引用同一个对象,这样一来,对其中一个变量的操作就会影响到被另一个变量引用的对象。对于值类型的变量而言,每一个变量有它们自己的数值,因此对其中一个变量的操作不可能影响到另外一个变量。,值类型,所有的值类型都隐含地声明了一个公共的无参数

2、的构 造函数,这个构造函数叫做默认构造函数。默认构造函 数返回一个初始为零的值类型的实例,称之为默认值。 对于sbyte、byte、short、ushort、int、uint、long、ulong ,默认值为0。 对于char,默认值是x0000 对于float,默认值是0.0F 对于double,默认值是0.0D 对于decimal,默认值是0.0M 对于bool,默认值是false 对于一个枚举类型,默认值是0 对于一个结构类型,默认值的设置就是把所有值类型的 域都设置为它们各自的默认值,把所有的引用类型的域 赋为空,简单类型,C#提供一套预定义的结构类型叫做简 单类型。简单类型用保留字定

3、义,这些保 留字仅仅是在System名字空间里预定义的 结构类型的化名。比如int是保留字, System.Int32是在System名字空间中预定义 类型。一个简单类型和它化名的结构类型 是完全一样的,也就是说写int和写 System.Int32是一样的。 简单类型主要有整型、浮点类型、小数 类型、布尔类型、字符型,整型,C#中支持9种整型:sbyte、byte、short、ushort、int、 uint、long、ulong和char。 Sbyte:代表有符号的8位整数,数值范围从-128 127 Byte:代表无符号的8位整数,数值范围从0255 Short:代表有符号的16位整数,

4、范围从-32768 32767 ushort:代表有符号的16位整数,范围从-32768 32767 Int:代表有符号的32位整数,范围从-2147483648 2147483648 uint:代表无符号的32位整数,范围从0 4294967295 Long:代表有符号的64位整数,范围从 -9223372036854775808 9223372036854775808 Ulong:代表无符号的64位整数,范围从 0 18446744073709551615,char:代表无符号的16位整数,数值范围从065535。 Char类型的可能值对应于统一字符编码标准(Unicode) 的字符集。

5、Char类型与其他整数类型相比有以下两点不同之处: 1、没有其他类型到char类型的隐式转换。即使是对于sbyte,byte和ushort这样能完全使用char类型代表其值的类型, sbyte,byte和ushort到char的隐式转换也不存在。 2、char类型的常量必须被写为字符形式,如果用整数形式,则必须带有类型转换前缀。比如(char)10 赋值形式有三种: char chsomechar=“A”; char chsomechar=“x0065”; 十六进制 char chsomechar=“u0065 ; unicode表示法,.,字符型中有下列转义符: 1、用来表示单引号 2、”用

6、来表示双引号 3、 用来表示反斜杠 4、 0 表示空字符 5、 a 用来表示感叹号 6、 b 用来表示退格 7、 f 用来表示换页 8、 n 用来表示换行 9、 r 用来表示回车 10、 t 用来表示水平tab 11、 v 用来表示垂直tab,浮点类型,C#支持两种浮点类型:float和double。 Float型所能表示的值的范围大约可以从1.5*10-453.4* 1038,精确到小数点后面7位。Double型所能表示的值的 范围大约可以从5.0*10-3241.7* 10308,精确到小数点 后面15位或16位。 如果二元操作中的其中一个操作数为浮点类型,那 么另外一个操作数是整型或浮点

7、类型,运算规则如下: 1、如果其中一个操作数是整型,则操作数被转换为另一个操作数的浮点数类型; 2、如果操作数之一为double,则另一操作数也被转换成double类型,运算以double类型的精度和取值范围进行,并且所得结果也为double类型; 3、否则,运算至少将以float类型的取值范围和精度进行,并且所得结果也为float型。,小数(decimal)类型,小数类型非常适用于金融和货币运算。数值范围从 1.0*10-287.9* 1028,精确到小数点后面28位。 如果二元操作中的其中一个操作数是小数类型,那 么另外一个从操作数是整型或小数类型。整型在运算前 被转化为小数类型数。 如果

8、一个小数类型的算术运算产生了一个对于小数类 型的格式来说太小的值,操作的结果将会变成0。 如果一个小数类型的算术运算产生了一个对于小数类 型的格式来说太大的值,就会触发溢出错误。 小数类型较浮点类型而言,具有更大的精确度,但 是数值范围相对小了很多。将浮点类型的数向小数类型 的数转化时会产生溢出错误,将小数类型的数向浮点类 型的数转化时会造成精确度的损失。因此,两种类型不 存在隐式或显式转换。,布尔型:值为true或false。没有标准能实现布尔类型 和其他类型的转换。 枚举类型:枚举类型的元素使用的类型只能是long、 int、short、byte。默认类型是int。 默认第一个元素的值是0

9、,每一个连续的元素按1递 增。可以给元素直接赋值。如: enum monthnames January=1,February, march=31; 可以强制定义其他类型,如: enum monthnames : byteJanuary ,February,March;,结构类型,结构类型也是一种值类型,使用它的目的是用于创建小型的对象, 用以节省内存.下面的例子表示一个使用byte类型的4个字段的IP地址。 using System; Struct IP /声明结构 public byte b1,b2,b3,b4; Class test public static void Main() IP

10、 myIP; myIP.b1=192; myIP.b2=168; myIP.b3=1; myIP.b4=101; Console.Write(“0.1.”, myIP.b1, myIP.b2); Console.Write(“0.1”, myIP.b3, myIP.b4); ,引用类型,引用类型包括类类型、接口类型、代表类型和数 组类型。 1、类类型 类 类型定义了一种数据结构,这个数据结构中包含了 数据成员(如常量、字段和事件等),函数成员(如方 法、属性、索引、操作、构造函数和析构函数等)和嵌 套 类型。支持继承。 2、对象类型 对象类型是其他所有类型最终的基础类型。在C中 每一种类型都直

11、接或者间接的源于object这个类类型。 3、字符串类型 字符串类型是直接从object中继承而来的密封类。 String类型的值可以写成字符串文字的形式。,4、接口类型 一个接口声明一个只有抽象成员的引用类型,接口仅仅 存在方法标志,但没有执行代码。当定义一个类时,如 果类从接口派生,可以派生自多重接口;但是如果类从 类派生,就只能从一个类派生。 声明方法如例:interface iface void showmyface(); 5、代表类型 代表引用一种静态的方法或者对象实例,引用该对象 的实例方法。与其接近的是c/c+中的指针,但指针只能访问静态的函数,代表既能访问静态的方法,也能访 问

12、实例的方法。,6、数组 数组是包含一串变量的数据结构。数组变量也称做数组 元素,它们具有相同的类型,这种类型也称做数组元素 类型。数组的元素类型可以是任何类型,包括数组类型。 数组用下标确定每一个数组元素的索引号。只有一 个下标的数组称为一维数组,多于一个下标的数组称为 多维数组。 例:int a=0,2,4,6,8; 等价于int a=new int 0,2,4,6,8; 也可以这样初始化:a0=0; a1=2; a2=4; a3=6; a4=8; int a; /int型的一维数组 int, a; /int型的二维数组 int, a; /int型的三维数组 int a; /int型的数组的

13、数组 inta; /int型的数组的数组的数组,数组的每个维数的长度不是数组类型的一部分,维数的 长度是在数组创建语句中指定的,而不是在数组类型中 指定的,例如: int, a3=new int10,20,30; a3是是一个数组变量, int, 没有指定数组的长度,数组 创建语句new int10,20,30才指定。 下面的例子创建一个数组的数组: int J=new int3; J0=new int 1,2,3; J1=new int 1,2,3,4,5,6; J2=new int 1,2,3,4,5,6,7,8,9;,加框和消框,boxing和unboxing允许把任何值类型的值转化为对

14、象 (object)类型,或者把object类型转化为值类型,这样它就 把值类型和引用类型紧密的结合起来了。简单的说,加 框操作就是数值类型转换为类型对象,消框操作就是类 型对象转换为数值类型。 1、加框操作 给一个值加框指隐式地把任何数值类型转换成类型对象。当一个数值类型被加框时,一个对象实例就被分配,而且数值类型的值复制给新的对象。 如:int n=200; object o=n; /加框操作 o=201; Console .WriteLine(“01”,n,o); 改变o值,n的值不变,2、消框是显式操作必须告诉编译器,想从对象中抽取 出哪一种值类型。当执行消框操作时,C检测所请求的 值

15、类型是否存储在对象实例中。 如: int n=200; object o=n; int u=(int) u; /消框转化,操作符,1、括号操作符 格式() 2、点操作符 格式 (E.I) 其中E是基本表达式或者预定义类型,I是一个标识符。 C+里除了“.”之外还有“:” “-”,C#里用点操作符来代替。 比如一个类T有成员变量M,在C+里用T:M来引用,C# 里用T.M来引用。 另一点不同的是,C里预定义类型也是从Object类 派生出来的,因此也定义了成员变量,比如,I是一个 short类型的变量,那么I.ToInt()操作将返回一个Int类型的 值。,3、后缀加减操作符 格式:p+;p-;

16、 +p; -p; 结果是给变量p加1或减1 4、new操作符 格式:a、 new 类型(参数列表) b、new 数组类型初始化列表 c、new 代表类型(表达式) 5、typeof操作符 该操作返回一个类型对应的system.type,如: typeof(int); typeof(System.Int32); typeof(string); 各自的结果为int32,int32,string。typeof只对类型操作,不能对变 量操作,例如,“int I;typeof(I);”是不合法的,6、sizeof操作符 该操作可获得一个类型所占用的空间大小,以字节为单 位。该操作符用在unsafe模块中

17、,如 Unsafe S=sizeof(int); 或者在调用该操作符的函数中使用该前缀。 7、单目操作符 (1)+操作 (2)逻辑非:!(表达式) (3)位非:(表达式) (4)强制类型转换: (T) 表达式,8、关系运算符 、!=、=、 is is用来判断一个变量是否是某一类型,例如,s is string 9、位逻辑操作符 x=-x; x: return x; 上面的代码中x既是一个标签也是一个变量,两者不会冲 突。,4、if语句 格式:if(布尔表达式)嵌入语句else 嵌入语句 5、switch语句 格式:switch(表达式) case 常量表达式:嵌入语句 default: 嵌入语

18、句 必须用break强迫退出switch语句,另外如果企图执行完case 0语句后,继续执行后面的语句则须使用goto语句。 如:switch(i) case 0: casezero(); goto case1; case1: caseone(); goto default; default: caseothers(); break; ,6、while语句 格式:while(布尔表达式) 嵌入语句 7、dowhile语句 格式:do 嵌入语句 while(布尔表达式) 8、for语句 格式:for(初始化;布尔表达式;重复语句)嵌入 语句 9、foreach语句 foreach语句列举出聚集的元素,并为每一个聚集的元素执行一条嵌入语句。 格式:foreach(类型 标识 in 表达式)嵌入语句,using System; public class foreachapp public static void Main() int odd=0,even=0; in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论