第4章C#语言基础_第1页
第4章C#语言基础_第2页
第4章C#语言基础_第3页
第4章C#语言基础_第4页
第4章C#语言基础_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、1第4章 C#语言基础语言基础 2本章要点及学时安排 熟悉C#中简单的数据类型和操作符 熟悉C#中三种控制语句 了解C#于其他语言的关系 了解异常处理的方法 本章授课学时为2学时 练习和上机学时为1学时-本章要点-学时安排3教学内容 C#语言基础 C#语言的数据类型 C#语言的运算符 C#语言的控制语句 C#语言与其他语言的关系 44.1 C#简介简介 C#语言自C/C+演变而来,是一种简洁、类型安全的面向对象的编程语言。它简化和现代化了C+在类、名字空间、方法重载和异常处理等领域。同时,C#也借鉴了Java语言的许多优点。 C#是Microsoft为.NET平台量身定做的新的程序语言,可以用

2、来构建在.NET Framework上运行的各种安全、可靠的应用程序。 C#的新功能包括严格的类型安全、版本控制、垃圾收集等,所有这些功能都瞄准了开发面向组件的软件。54.2 数据类型 C#的数据类型主要有两类:值类型(value type)和引用类型(reference type)。 值类型包括简单类型(整型、浮点型和布尔型等)、枚举类型和结构类型。引用类型包括对象类型、类类型、接口类型、代表类型、字符串类型和数组类型等。 值类型和引用类型的不同之处是值类型的变量值直接包含数据,而引用类型的变量不存储他们代表的实际数据,而是存储对实际数据的引用。64.2.1值类型中的简单类型 简单类型 整型

3、浮点型小数型布尔型 特点在C#中出现的简单类型共享一些特性。第一,它们都是.NET系统类型的别名,例如:int就是System.Int32的别名。第二,由简单类型组成的常量表达式仅在编译时而不是运行时受检测。最后,简单类型可以按字面被初始化,例如int a=5,则a即被初始化赋值为5。74.2.1值类型中的简单类型1、整型:根据计算机中表示整数的长度及整数是否具有符号位,C#中可以划分为9种整数类型,如表所示名称说 明数 值 范 围sbyte有符号的8位整数-128 127byte 无符号的8位整数0 255short有符号的16位整数-32768 32767ushort无符号的16位整数0

4、65535int有符号的32位整数-2147483648 2147483648uint无符号的32位整数0 4294967295long有符号的64位整数-9223372036854775808 9223372036854775808ulong无符号的64位整数0 18446744073709551615char无符号的16位整数0 6553584.2.1值类型中的简单类型 注意:注意: 上表中char类型的可能值对应于统一字符编码标准(Unicode)的字符集。char类型与其他整数类型相比有以下两点不同之处: (1) 没有其他类型到char类型的隐式转换,既使对于sbyte,byte和us

5、hort这样能完全使用char类型代表其值的类型,sbyte、byte和ushort到char类型也不存在隐式转换。 (2) char类型的常量必须被写为字符形式,如果用整数形式,则必须带有类型转换前缀。如(char)10。94.2.1值类型中的简单类型2、 浮点型 两种浮点类型 float型 :1.510-453.41038 精确到小数点后面7位 double型 :5.010-3241.710308 精确到小数点后面15、16位 浮点运算结果 正零和负零 正无穷和负无穷 非数字值 NaN非零值的有限数集 与浮点数运算,其他类型要先转换成浮点类型104.2.1值类型中的简单类型3、小数类型 小

6、数类型是一种高精度、128位的数据类型,适用于金融和货币运算。数值范围从1.010-287.91028,精确到小数点后面28位。 小数类型较浮点类型而言,具有更大的精确度,但是数值范围相对小了很多。 当定义一个变量并赋值给它时,使用 m 后缀以表明它是一个小数类型。例如:“decimal decMyValue = 1.0m;”。 这里如果省略了m,在变量被赋值之前,它将被编译器认作double类型。 114.2.1值类型中的简单类型4、布尔型 布尔数据类型(bool)有true和false两个布尔值 可以赋于true或false值给一个布尔变量,也可以赋于一个表达式 布尔类型的变量或表达式运算

7、,结果还是布尔型124.2.2 引用类型 和值类型相比,引用类型不存储它们所代表的实际数据,而是它们存储实际数据的引用。 C#中的引用类型,其实就是特殊的指针,它拥有的是基本的指针语义,但是又有C+中引用的某些特征。 C#中的引用类型有对象类型、类、接口、委托、字符串类型和数组。134.2.2 引用类型 对象类型:是所有类型之母它是其它类型最根本的基类 类类型:包含数据成员、函数成员和嵌套类型 接口:是一个只有抽象成员的引用类型 委托:封装了具有一些标志的一个方法 以上类型不做详细介绍,请参阅相关教材144.2.2 引用类型1、字符串类型 string类型 :常见用法string str1=H

8、ello; /字符串赋值string str2=str1+World!; /字符串连接char c1=str10; /通过下标访问单个字符bool flag=(str1=str2); /比较两个字符串是否相等 相关用法:(1) 取字串长度 (2) 截取字串的一部分 (3) 字串替换 (4) 字串中指定字符或字串首次(最后一次)出现位置 154.2.2 引用类型(5) 在字串中指定索引位插入指定字符 (6) 在字串左(或右)加空格或指定char字符,使字串达到指定长度 (7) 从指定位置开始删除指定个数的字符 (8) 清除字串前后空格164.2.2 引用类型2、数组 数组是包含一串变量的数据结构

9、。数组变量也称作数组元素,它们具有相同的类型,这种类型也称做数组类型。数组用下标确定每一个数组元素的索引号,索引号从0开始。只有一个下标的数组称为一维数组,多于一个下标的数组称为多维数组 (1) 声明数组时,方括号跟在类型后面。 Int a (2) 数组的每个维数的长度不是数组类型的一部分 int a; a=new int10; 174.2.3其它数据类型 DateTime日期时间类型 :DateTime 值类型表示值范围在公元0001年1月1日午夜12:00:00到公元9999年12月31日晚上11:59:59之间的日期和时间 DateTime currentTime;currentTime

10、=System.DateTime.Now; /取当前年月日时分秒int year=currentTime.Year; /取当前年int month=currentTime.Month; /取当前月int day=currentTime.Day; /取当前日int hour=currentTime.Hour; /取当前时int minute=currentTime.Minute; /取当前分int second=currentTime.Second; /取当前秒string strCurrentTime=currentTime.ToString(); /取当前时间作为字符串返回 184.2.4数

11、据转换 C#数据类型之间必须显式转换1. 使用框架类转换数据类型 如:int iAge; iAge=int.Parse(txtAge.Text);2. 通过造型转换数据类型 如:double MyDouble=1.23; int MyInteger; MyInteger=(int)MyDouble;3. 显式转换 如:float num=1.23f;194.3 操作符 根据操作符作用的操作数的个数来分,C#包括多个一元操作符、多个二元操作符和一个三元操作符。表4-2列出了一些常用操作符。 当一个表达式包含多个操作符时,操作符的优先级决定了计算的顺序。 具体操作符参见下页表204.3 操作符 如

12、下表:操作符类别操作符算术+ - * / %逻辑& & | | !字符串连接+递增、递减+ -关系= != =赋值= += -= *= /= %= 成员访问.索引转换()条件?:创建对象new类型信息sizeof typeof214.3 操作符 逻辑运算中 &与| &与| 他们的区别 递增(+)和递减(-)运算 “=”和比较“=”运算符 224.4 控制语句 控制语句是在程序运行过程中,有条件地执行或重复执行某些语句,改变程序正规的顺序执行流向,C#中把常见的控制语句划分为选择语句、循环语句和跳转语句 234.4.1 选择语句1、if语句 if语句有三种结构:

13、单条件选择: if( ) 双条件选择 :if ( ) else 多条件选择: if ( )else if ( )else if ( ) else 其中()内为条件布尔表达式,内为各分支的语句块,如果分支语句块中仅一条语句,则可以省略不写。 244.4.1 选择语句2、switch语句 求一个表达式的值,并将这个值与许多case进行比较。 结果如下:Switch(表达式) case 结果1: case 结果2: default: 254.4.2 循环语句 1、While语句 当一个表达式的值为true时,这个语句执行一个语句列表。 结构:While(表达式) 循环体语句264.4.2 循环语句2

14、、 do语句 与while语句相似,但是循环体至少执行1次do 循环体while(表达式)274.4.2 循环语句3、 for语句 结构如下:for(初始化器;条件表达式;迭代语句) 循环体284.4.2 循环语句4、 foreach语句 语句用来循环一个集合中的元素 foreach(类型 element in 数组) 循环体294.4.3 跳转语句 1break语句:这个语句常与switch语句联合使用,也经常用于跳出一个循环语句块。 3goto语句:这个语句将控制返回到控制循环语句的布尔表达式。 2continue语句:这个语句把控制无条件交给一个标记语句。304.5 命名空间 命名空间(

15、Namespace)是将相关的类型进行分组的逻辑命名方案。.NET Framework 使用分层命名方案,将类型分为相关功能的逻辑类别。 System是一个命名空间,Console是该命名空间中包含的类。如果使用 using关键字,则不必使用完整的名称,例如:using System;Console.WriteLine(Hello);Console.WriteLine(World!);314.6 异常处理 异常处理就是C#为处理错误情况提供的一种机制。C#的异常处理所用到关键字包括: try 用于检查发生的异常,并帮助发送任何可能的异常。 catch以控制权更大的方式处理错误,可以有多个cat

16、ch子句。 finally无论是否引发了异常,finally的代码块都将被执行。 throw 用于引发异常,可引发预定义异常和自定义异常。324.7 C#与其他语言的关系 C#作为Microsoft公司力推的服务器端脚本语言,从使用方法上来看是完全独立的,不需要其他脚本语言的支持,但从其产生的历史和作用来看,和他们又有着千丝万缕的联系,这里给出一些比较和分析 334.7.1 C#与CC+语言的关系 语言是在70年代初问世的 C+是建立在C语言之上的 C#是微软开发的,专门编写.NET软件的语言 对比参见下表 344.7.1 C#与CC+语言的关系功能C#C+继承允许继承单个类,允许实现多个接口

17、允许从多个类继承接口实现通过“interface”关键词通过抽象类内存管理由运行时环境管理,使用垃圾收集器。需要手工管理指针支持,但只在很少使用的非安全模式下才支持,通常以引用取代指针支持,一种很常用的功能源代码编译后的形式.NET中间语言(IL)可执行代码单一的公共基类是否异常处理异常处理返回错误354.7.2 C#与Java语言的关系C#和JAVA语言对照表功能C#Java继承允许继承单个类,允许实现多个接口允许继承单个类,允许实现多个接口接口实现通过“interface”关键词通过“interface”关键词内存管理由运行时环境管理,使用垃圾收集器由运行时环境管理,使用垃圾收集器指针支持

18、,但只在很少使用的非安全模式下才支持,通常以引用取代指针完全不支持,代之以引用源代码编译后的形式.NET中间语言(IL)字节码单一的公共基类是是异常处理异常处理异常处理364.7.2 C#与Java语言的关系 此外,C#和java有着很多相似之处:(1) 二者都编译成跨平台的、跨语言的代码,并且代码只能在一个受控制的环境中运行自动回收垃圾内存,并且消除了指针(在C#中可以使用指针,不过必须注明unsafe关键字);(2) 二者都不需要头文件,所有的代码都被“包(package)”限制在某个范围内,并且因为没有头文件,所以消除了类定义的循环依赖;(3) 所有的类都是从对象派生出来,并且必须使用New关键字分配内存;(4) 都是用对象加锁的方式来支持多线程;(5) 都具有接口(interface)的概念。374.7.3 C#与VBScript语言的关系C#和VBScript对照表比较项目C#VBScript编写客户端程序不可以可以编写服务器端程序可以可以面向对象完全面向对象编程基于对象编程运行环境.NET FrameworkActive Server Page出品公司微软微软数据库操作方便功能强大其他功能强大更加强大384.7.4 C#与JavaScript的关系 JavaScript是一种基于对象和事

温馨提示

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

评论

0/150

提交评论