欢迎来到天天文库
浏览记录
ID:59432840
大小:191.50 KB
页数:61页
时间:2020-09-18
《C#程序设计及应用教程(WHUT课件)第2章 数据类型与流程控制.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第2章数据类型与流程控制2.1数据类型2.2不同数据类型之间的转换2.3常量与变量2.4运算符与表达式2.5控制台应用程序与格式化输出2.6C#流程控制语句2.1数据类型C#数据类型分为两类:值类型和引用类型。值类型:值类型变量直接保存变量的值包括简单类型、枚举类型、结构类型、可空类型。引用类型:引用类型变量保存的是数据的引用地址。包括类、接口、数组、委托。一般把引用类型的变量称为对象。类别描述值类型简单类型有符号整型:sbyte,short,int,long无符号整型:byte,ushort,uint,ulongUnicode字符:charIEEE浮点型:floa
2、t,double高精度小数:decimal布尔型:bool枚举类型用户自定义类型enumE{…}结构类型用户自定义类型structS{…}引用类型类类型所有其他类型的最终基类:objectUnicode字符串:string用户自定义类型classC{…}接口类型用户自定义类型interfaceI{…}数组类型单维与多维数组,例如,int[]与int[,]委托类型用户自定义类型delegateTD(…)值类型与引用类型区别12345H堆栈堆56ij实际数据12345Hobj值类型和引用类型的区别特性值类型引用类型变量中保存的内容实际数据指向实际数据的引用指针内存空间配
3、置堆栈(Stack)受管制的堆(ManagedHeap)内存需求较少较多执行效率较快较慢内存释放时间点执行超过定义变量的作用域时由垃圾回收机制负责回收可以为null不可以可以2.1.2整型C#提供了八种整型(即计算机组成原理中的“定点数”):sbyte:1字节有符号byte:1字节无符号short:2字节有符号ushort:2字节无符号int:4字节有符号,最常用uint:4字节无符号long:8字节有符号ulong:8字节无符号各类型表示的数据类型见表2-32.1.3浮点类型float:4字节浮点数,常用。例如:35.0fdouble:8字节浮点数,常用。例如:2
4、.7E+23decimal:16字节浮点数,特殊的浮点数,精度高适用于金融、货币等需要高精度数值的领域。其类型指定符为M(或m)。例如:decimaly=9999999999999999999999999m;float和double的浮点数格式与计算机组成原理介绍的IEEE754规定的格式相同各类型表示的数据类型见表2-42.1.4布尔型用bool表示,bool类型只有两个值true和false。例如:boolisExist=false;boolb=(i>0&&i<10);注意:C#中条件表达式的运算结果必须为bool型if(i)j+=10;//错误与c++不一样i
5、f(j=15)j+=10;//错误if(i!=0)j+=10;//正确if(j==15)j+=10;//正确2.1.5字符型与字符串类型char型,为单个Unicode字符,字符型常量必须用单引号引起来。例如:charch=‘a’;如果是字符串(单个字符的组合),对应的类型为string。string类型的常量用双引号将字符串引起来。例如:stringstr=“hello”;char和string类型的常量均可以使用转义符。转义符见表2-52.2值类型之间的数据转换有两种转换方式:隐式转换与显式转换;如果是不同值类型之间的转换,可以使用Convert类提供的静态方法
6、。2.2.1隐式转换和显式转换隐式转换从低精度、小范围的数据类型转换为高精度、大范围的数据类型,可以用隐式转换。例如:intk=1;longi=2;i=k;//隐式转换2.2.1隐式转换和显式转换显式转换如:longk=5000;inti=(int)k所有的隐式转换也都可以采用显式转换的形式来表示。如:inti=10;longj=(long)i;将大范围类型的数据转换为小范围类型的数据的时候,必须特别谨慎,因为此时有丢失数据的危险。例题2-12.2.2装箱与拆箱C#的类型系统是统一的,这样任何类型的值都能够被处理成对象。C#中每一个类型直接或者间接从object类继
7、承而来,并且object是所有类型最终的基类。Object类型:System命名空间下有一个Object类,该类是,所有其他引用类型的基类。考察:Strings=(10).ToString();C#如何调用数值10上的方法ToString()?【值类型与object类型之间的转换】值类型与object类型之间的转换,可以使用装箱与拆箱技术实现。装箱(boxing):将值类型转换为object类型inti=123;objecto=i;//含义:在堆栈中创建一个对象o,该对象引用了堆(heap)上int类型的数值,而该数值是赋给变量i的数值的备份。oxxxxH堆栈堆
此文档下载收益归作者所有