C#入门到精通ppt课件

上传人:钟*** 文档编号:4968994 上传时间:2020-01-16 格式:PPT 页数:669 大小:8.30MB
返回 下载 相关 举报
C#入门到精通ppt课件_第1页
第1页 / 共669页
C#入门到精通ppt课件_第2页
第2页 / 共669页
C#入门到精通ppt课件_第3页
第3页 / 共669页
点击查看更多>>
资源描述
本课程主要讲授的内容包括 C 的基本语法 语句 方法 C 面向对象编程技术 WINDOWS编程 输入输出 数据库访问技术等 1 第一章 Net环境和C 语言简介 2 本章内容 Microsoft Net概述C 语言介绍 3 本章内容 本章主要简单介绍了Microsoft Net和C 语言 首先介绍了C 语言的基础 Microsoft Net平台的设计理念 主要构成和设计目标 然后介绍了C 语言的特点和运行模型 4 1 1Microsoft Net概述 Microsoft Net是微软公司面向下一代互联网软件和服务战略 它的出现标志着新的软件设计理念和服务理念的产生 5 Microsoft Net是微软公司面向下一代互联网软件和服务战略 它的出现标志着新的软件设计理念和服务理念的产生 一 Microsoft Net的设计理念 6 Microsoft Net努力改变人类适应机器 适应技术的现状 为各类用户提供一种简单的操作信息的能力 使得所以商业用户和个人用户都能方便查找和使用其中的信息 任何规模的公司都可以使用相同的工具与他们的供应商 商业伙伴和客户高效地沟通和分享信息 从而创建一种全新的协同工作模式 7 对于用户来说 Microsoft Net意味更简单化的整体服务 统一的信息浏览 编辑和授权 查看资料 工作 联机 脱机媒体 对于企业来说 Microsoft Net意味着统一的信息浏览 编辑和授权 丰富的同步传播 密切的移动通信联系 得力的信息管理和电子商务工具 在基于Internet和Intranet的服务程序之间灵活地切换 为动态商务伙伴关系的建立提供支持 8 对独立软件开发商来说 Microsoft Net意味着创造基于Internet的更多新型高级服务的机会 这些服务可以借助Internet自动的从本地或远程获取和利用所需的信息 而无须为不同的工作环境重新编写程序 9 Microsoft Net主要包括一下四个方面的内容 构造和管理新一代服务的基本结构和工具 包括 Net框架 Framework VisualStdio Net Net企业服务器和Windows Net 二 Microsoft Net的组成 10 创建互联网操作系统的构建块 包括PassPort Net 用于用户认证 用于文件存储的服务 用户首选项服务 日历管理以及众多的其它服务 能够启用新型智能互联网设备的 Net设备软件 Net用户体验 11 三 Net框架和C Net框架是 Net平台基础架构 它消除了各类编程语言之间的差别 从而实现了跨语言平台编程的能力 Net的这种能力主要来源于公共语言运行时 CommonLanguageRuntime CLR 和类库 公共语言运行时和类库 WindowsForms ADO Net和ASP Net 统一了各类语言类型 从而使得各种编程语言间无缝集成成为可能 12 C 读Csharp 语言就是微软为解决上述问题而设计的 它是微软公司为 Net计划开发推出的核心编程语言 该语言几乎综合了目前所有编程语言的优点 C 是一种现代的面向对象的程序开发语言 开发人员能够利用它在 Net平台上快速开发种类丰富的应用程序 并可以转换为Web服务 13 1 2C 语言介绍 C 语言是专门为 Net应用而开发的语言 并且在设计过程中综合了其它编程语言的优点 即满足了应用程序的快速开发能力 又没有牺牲各种灵活性 同时它忠实地继承了C和C 的优点 14 一 C 的语言特点 C 语言作为一种新生语言与其它编程语言相比有一下几个突出的特点 简洁的语法面向对象的特点与Web的紧密结合安全性和错误处理版本处理灵活性与兼容性 15 二 C 的运行模型 目前用高级语言编写的程序有两种形式 一种是被编译成机器语言在CPU上执行 如VisualC Pascal等 另外一种是边解释边执行的 称为解释性语言 如VisualFoxFro VisualBsasic3 0等 16 三 C 的运行模型 中间语言 IntermediateLanguage IL 中间语言是一种与硬件平台无关的指令集 InstructionSet 使得C 编写的程序可以在任何支持 Net的系统上运行 操作系统 NET环境 C 代码 CSC exe IL文件 OSLoader 类加载器 程序内存映象 JIT编译器 可执行代码 类库文件 安全性检查 Cpu执行 17 本章小节 本章对Microsoft Net平台和C 语言进行了简要的介绍 通过本章学习 读者可以学习到 Net构建理念和组成 C 语言特点和运行模型等内容 学习完本章 应该重点掌握以下内容 18 Microsoft Net由构造和管理新一代服务的基本结构和工具 创建互联网操作系统的构建块 能够启用新型智能互联网设备的 Net设备软件和 Net用户体验 四部分构成 其中 NetFramework是 Net平台的基础 它消除了各类编程框架之间的差异 实现了跨语言编程的能力 C 语言具有简洁的语法 面向对象 与Web的紧密结合 安全性和错误处理等特点 19 C 程序并不是一次编译后执行的 而是先编译成中间代码 然后在 Net环境由JIT编译器边编译边运行的 这样实现的最大好处是消除了编程语言的差异 节约了系统资源 Net平台带来的新概念 中间代码 运行时编译 元数据 垃圾回收器 20 第二章 VisualStudio Net集成开发环境 21 本章内容 VisualStudio Net集成开发环境的安装VisualStudio Net集成开发环境介绍 Net集成开发环境上C 程序开发 22 本章内容 本章主要介绍C 程序集成开发环境VisualStudio NET的安装方法 IDE中窗口 选项和帮助的内容 以及在VisualStudio NET上进行C 程序开发的一般原则 23 2 1VisualStudio Net集成开发环境的安装 为了确保安装成功 应该在安装VisualStudio Net之前完成以下任务 确保硬件满足最低要求 确保操作系统满足安装要求 获取和VisualStudio Net有关的组件 24 一 硬件和系统需求 在安装VisualStudio Net之前 要确保计算机满足以下的最小硬件需求 奔腾II系列 450MHZ 推荐使用奔腾III733MHZ以上配置内存128MB 推荐使用256MB以上配置800 600 256色显示器以上配置一个CD ROM驱动器操作系统 Windows98 WindowsNT4 0 MicrosoftWindows2000 WindowsXP WindowsServer2003 25 二 安装必要的组件 在安装VisualStudio Net之前 需要在系统上安装必要的Windows组件 主要包括 WindowsNT4 0ServicePack6aWindows2000ServicePack2MicrosoftWindowsInstaller2 0MicrosoftWindowsManagementInfrastructureMicrosoftFrontPage2000WebExtensionsClient 26 以上组件并不一定都要安装 具体要安装的组件要根据操作系统的情况来定 最简单的方式是使用MicrosoftWindowsComponentUpdate光盘 即VisualStudio NetCD3 进行组件的安装 27 1 将MicrosoftWindowsComponentUpdate光盘放入光驱 如果光盘不能自动播放 则在光盘中查找Setup exe 双击运行即可显示图2 1的界面 图2 1安装程序 28 2 信息装载完毕后 就会弹出对话框中显示安装的各种组件 如图2 2所示 有时会弹出一个警告对话框提示你使用CD1安装 这时点击 否 按钮 图2 2组件安装对话框 29 3 点击 立即安装 开始安装相应的组件 4 安装完毕后 点击 完成 如图2 3所示 就完成了相关组件的安装工作 图2 3组件安装结束界面 30 VisualStudio NET的安装程序存放在CD1和CD2盘上 用户可以使用光盘安装也可以将CD1和CD2盘上的内容合并拷贝到硬盘上安装 我们以光盘安装介绍其安装过程 三 在WindowsXP平台上安装VisualStudio Net 31 1 将CD1放入光驱 程序会自动运行 弹出系统检测对话框 检测过后会弹出选择安装VisualStudio NET对话框 如图2 4所示 图2 4VisualStudio NET安装程序 32 2 选择 2现在即可安装VisualStudio NET 系统进而安装初始化 3 系统初始化完成之后 弹出安装界面 选择 同意 点击 继续 进入安装程序选择页 如图2 5所示 33 图2 5安装程序选择页 34 4 根据图2 5所示 在 功能属性 栏中为VisualStudio Net选择安装目录 同时在左栏中的 选择要安装的项 下 选择要安装的组件 然后点击 立即安装 进行安装过程 如图2 6所示 35 图2 6安装过程5 36 5 在安装过程中 系统会提示更换安装盘CD2 这时将CD2安装盘插入光驱 继续安装 当安装完成后出现图2 6所示界面 点击右下角的 完成 标签 37 图2 6安装完成界面 38 6 至此 安装结束 界面会返回到初试安装界面图2 4 此时图标3 产品文档 项为选中状态 用户可以选择3安装MSDN库 或者选择 退出 以后安装该文档库 39 一 启动VisualStudio Net集成开发环境 2 2VisualStudio Net集成开发环境介绍 40 在成功安装VisualStudio Net之后 在 开始 菜单中 所有程序 项中选择 MicrosoftVisualStudio Net2003 即可启动VisualStudio Net集成开发环境 如图2 7所示 41 图2 7启动VisualStudio Net 42 这时屏幕上会出现启动画面如图2 8所示 从画面上可以看出VisualStudio Net开发环境中目前包含的产品 图2 8启动界面图 43 启动界面消失后就正式进入了VisualStudio Net集成开发环境 首次运行会显示 起始页 如图2 9所示 该页包含 项目 联机资源 我的配置文件 三个可选页 44 图2 8VisualStudio Net的 起始页 45 项目 页中显示了最近一段时间内打开过的项目 以方便用户查找 由于第一次进入所以没有项目显示 该页上还有两按钮 新建项目 和 打开项目 点击 新建项目 会弹出 新建项目 对话框 从中可以创建C 项目 联机资源 页显示了VisualStudio Net的新特性如图2 9所示 新增功能 部分显示了VisualStudio Net的新特性 包括下载示例代码和新的编程工具 46 图2 9 联机资源 栏 47 二 VisualStudio Net的窗口 VisualStudio Net向用户提供了浏览文件和自定义控件的窗口 本节将讨论开发C 应用程序必须的窗口 可通过位于菜单栏下面 工具栏右部的一些工具栏图标访问这些窗口如图2 10所示 或者从 视图 菜单中选择所需窗口的名称来访问它 48 1 解决方案资源管理器 窗口 解决方案资源管理器 窗口列出了所有解决方案中的文件 当创建一个新项目或者现存的项目被打开时 解决方案资源管理器 窗口将显示这个项目的内容 图2 11显示了打开一个C 项目时 解决方案资源管理器 窗口的内容 49 50 2 属性 窗口 属性 窗口用于操纵一个窗体或者控件的属性如图2 12所示 属性定义了控件的信息 例如大小 颜色 字体等 每个控件都有自己的一组属性 当选中某个属性时 属性 窗口下方会显示该属性的描述 51 52 3 工具栏 窗口 工具栏 窗口如图2 13所示 包含了可重用的组件或者控件 用于自定义应用程序 用户在编程时可以在窗体中 拖放 已有的控件 省去了自己编写代码的麻烦 这种方法是目前可视化编程中最常用的技术 通过组件或者控件 用户可以很快编写出需要的应用程序 从而满足了软件的快速开发要求 53 54 三 VisualStudio Net的菜单 VisualStudio Net的菜单主要包括 文件 菜单组 编辑 菜单组 视图 菜单组 项目 菜单组 生成 菜单组 调试 菜单组 工具 菜单组和 窗口 菜单组 下面将一一介绍这些菜单组的内容和使用方法 55 1 文件 菜单组 文件菜单组主要包括了与文件相关的操作命令 用户单击VisualStudio Net集成开发环境中的 文件 菜单会弹出如图2 14所示的菜单栏 主要包括以下命令 56 1 新建 新建 主要实现两个子命令 项目 和 文件 如图2 15 选择 项目 命令 将会弹出 新建项目 对话框 通过该对话框我们可以创建C 工程 选择 文件 命令 将出现 新建文件 对话框 通过该对话框可以创建不同类型的文件 图2 14 文件 菜单组 57 图2 14 文件 菜单组 图2 15 新建 子菜单 图2 15 打开 子菜单 58 2 打开 打开 菜单包括四个子菜单 项目 Web上的项目 文件 来自Web的文件 如图2 15所示 59 3 关闭 该命令用于关闭打开的文件 有以下三种执行方式 若当前没有文件打开 该命令不可用若当前打开文件没有被保存或者已经被修改 则在选择该命令后 弹出一个消息对话框 询问是否保存当前文件内容 如果有多个文件处于打开状态 选择该命令只能关闭当前活动的文件 60 4 添加项目 该子菜单包含三个命令 新建项目 现有项目 和 Web上的项目 5 保存 该命令用于保存当前活动窗口文件内容 该命令有两种执行方式 若当前文件处于打开状态 则该命令不可用若当前文件为新建文件 则该命令将激活 另存为 对话框 如图2 16所示 61 6 另存为 该命令用于保存一个新建的窗口或者当前编辑的窗口内容到不同的文件去 选择该命令将弹出 另存为 对话框 通过该对话框你可以指定要保存文件的位置 如果当前没有文件处于打开状态 该命令为不可用状态 图2 16 另存为 对话框 62 7 全部保存 该命令用于保存当前打开的所有文件 8 源代码管理 该子菜单包含了软件工程中代码管理的几个主要内容 9 页面设置 该命令主要用于设置打印选项 10 打印 该命令完成文件的打印工作 63 11 最近的文件 该菜单包含最近打开的文件 最多可以列出4个文件名 这些文件名列表为该对应文件的快捷打开方式 选择其中一个文件名 就能打开该文件 12 最近的项目 该菜单包含最近打开的项目名 最多可以列出4个项目名 13 退出 通过该命令 能退出VisualStudio Net集成开发环境 如果当前工程有没有保存的文件 将弹出警告框 64 2 编辑 菜单组 编辑 菜单组如图2 17所示 为用户提供了文件编辑命令 主要包括 1 撤销 该命令用于恢复用户最近一次的编辑 图2 17 编辑 菜单组 65 2 重复 该命令用于恢复被 撤销 的操纵 其快捷键为Ctrl Z 3 剪切 将当前活动窗口选中的内容剪切到剪切板中 4 复制 将当前活动窗口选中的内容复制到剪切板中 66 5 粘贴 将剪切板中内容拷贝到当前光标所在的位置 如果当前有选中的部分 则用剪切板中的内容替代当前选中部分 6 循环应用剪贴板中的复制项 循环替代剪切板中当前活动内容 7 删除 将当前活动窗口中选定的内容删除 67 8 全选 将当前活动窗口中的内容全部选中 快捷键Ctrl A 9 查找和替换 该子菜单包括五个命令 查找 替换 在文件中查找 在文件中替换和查找字符 提供这些命令 可以在当前活动文档 或者指定文件中寻找或者替代指定的内容或字符 10 转到 将光标快速移动到当前活动窗口中指定位置 68 11 将文件作为文本插入 选择该命令将弹出打开文件对话框 如图2 18所示 并所选定的文件内容插入到当前光标所在位置 图2 18 插入文件 对话框 69 12 高级 该子菜单项包含了用于进行高级查找 选择和文本处理操作的命令 13 书签 该子菜单项包含了用于文件书签管理的命令 14 大纲显示 该子菜单包含了用于管理视图大纲 15 智能感知 该子菜单包含了列出成员 参数信息 完成单词等智能化操纵 70 3 视图 菜单组 视图 菜单组如图2 19所示 主要用于VisualStudio Net集成开发环境中的窗口显示 主要包括 1 代码 该命令用于显示窗体对于的代码 2 设计器 该命令用于显示窗体的设计模式 3 打开 该命令用于打开当前方案管理器 类视图等项中的条目 71 4 打开方式 该命令用于设置出来文件的编辑器种类 图2 19 视图 菜单组 图2 20 显示任务 子窗口 72 5 解决方案资源管理器 该命令用于显示解决方案资源管理器窗口 6 类视图 该命令用于显示类视图窗口 7 服务资源管理器 该命令用于显示服务资源管理器窗口 8 资源视图 该命令用于显示资源视图窗口 9 属性窗口 该命令用于显示属性窗口 73 10 对象浏览器 该命令用于显示对象浏览器窗口 11 工具箱 该命令用于显示工具箱窗口 12 Web浏览器 该命令用于在IDE环境中实现IE功能 13 其他窗口 该命令用于显示诸如文档大纲窗口 输出窗口和输出窗口等窗口内容 14 显示任务 该命令用于管理任务清单中的显示内容如图2 20所示 74 15 工具栏 该命令用于指定将在屏幕上显示的工具栏 16 全屏 通过该命令 可以选择当前活动窗口以全屏方式显示 当处于全屏方式显示时 可以通过单击Esc键切换会原理的显示方式 17 向前定位 该命令相当于 前进 按钮 选择该命令 可以前进到上一个打开的窗口中 75 18 向后定位 该命令相当于 后退 按钮 选择该命令 可以后进到上一个打开的窗口中 19 属性页 通过该命令 将会弹出属性页对话框 通过该对话框 可以设置对象的属性 76 4 项目 菜单组 项目 菜单组主要包含于项目有关的操纵和命令 如图2 22所示 包含以下命令 图2 22 项目 菜单组1 添加Windows窗体 通过该命令 将会弹出 添加新项 对话框 通过该对话框可以向当前工程中添加Windows窗口 2 添加继承窗体 通过该命令 将会弹出 添加新项 对话框 通过该对话框中的 继承的窗体 项可以添加继承窗体 77 3 添加用户控件 通过该命令 将会弹出 添加新项 对话框 通过该对话框中的 用户控件 项可以添加用户控件 4 添加继承的控件 通过该命令 将会弹出 添加新项 对话框 通过该对话框中的 继承的用户控件 项可以添加继承的用户控件 5 添加组件 通过该命令 将会弹出 添加新项 对话框 通过该对话框中的 组件类 项可以添加组件 确认后就可以从工具箱或服务器管理器中选择合适的组件拖动到设计器中 78 6 添加类 通过该命令 将会弹出 添加新项 对话框 通过该对话框中的 类 项可以添加类 7 添加新项 通过该命令 将会弹出 添加新项 对话框 通过该对话框中的 项目 项可以添加继承窗体 8 添加现有项 通过该命令将出现 条目选择 对话框 通过该对话框 可以选择将要添加的条目 9 添加引用 选择该命令将出现 添加引用 对话框 通过该对话框 可以选择将要添加所需要的引用 79 10 添加Web引用 选择该命令将出现 添加Web引用 对话框 通过该对话框 可以选择寻找网页上的引用 11 设为启动项目 该命令将当前工程设置为启动工程 这样每次启动VisualC Net时自动地加载该项目 80 5 生成 菜单组 图2 21 生成 菜单组 生成 菜单组包含与编译 链接有关的命令 如图2 22所示 主要包括 1 生成 该命令编译和链接工程中所有被修改过的文件 并将警告信息和错误信息输出到输出对话框中 2 重新生成 该命令重新编译和链接当前工程 3 批生成 选择该命令将出现 批生成 对话框 如图2 23所示 使用该对话框可以建立多个工程的编译配置 81 图2 21 生成 菜单组 图2 23 批生成 对话框 图2 24 配置管理器 对话框 82 4 配置管理器 选择该命令将出现 配置管理器 对话框 如图2 24所示 使用该对话框可以建立多个工程的编译配置 83 6 调试 菜单组 调试 菜单组主要包括于程序调试有关的命令 如图2 25所示 主要包括以下命令 图2 25 调试 菜单组 图2 25 调试 菜单组 84 1 窗口 窗口 子菜单主要用于显示断点 异常和命令窗口 2 启动 编译运行当前工程 3 开始执行 在无调试模式下编译并运行当前工程 4 进程 显示当前系统中存在的进程 5 异常 当选择该命令时 会显示 异常 对话框 该对话框显示系统能够捕获的所有异常类型 85 6 逐语句 单步运行程序 按照语句为单位运行 7 逐过程 按照过程或者函数作为运行单位 遇到函数不跳入执行 8 新断点 选择该命令后 会在鼠标所在行加入断点 9 清除所有断点 选择该命令可清除所有设置过的断点信息 86 7 工具 菜单组 工具 菜单组如图2 26所示 主要包括以下命令 1 拼写检查 图2 26 工具 菜单组用于链接外部的拼写检查程序对项目进行拼写检查 2 调试进程 选择该命令后 会显示 进程 对话框 该对话框显示本机所有可能进程 3 连接到设备 用于连接外部设备 87 4 连接到数据库 选择该命令将出现 数据连接属性 对话框 通过该对话框可以连接到数据库 5 外部程序管理器 选择该命令还会出现 外部程序管理器 对话框 该对话框会显示当前可用的外部程序 6 生成注释Web页 为当前工程构造注释网页 7 宏 可以管理和录制宏 8 创建GUID 生成GUID编号的工具 88 9 ATL MFC跟踪工具 设置ATL MFC的跟踪行为 10 OLE COM对象察看器 提供安装在系统上的所有OLE和COM对象的信息 11 Spy 提供观察Windows操纵细节的方法 允许用户观察所有的过程线程 窗口和Windows发送的消息 12 外部工具 用于选择VisualStudio Net继承开发环境中使用的外部工具 89 13 自定义 选择该命令 会显示 自定义 对话框 用户可以提供这个对话框定制命令 工具栏 菜单和快捷键 14 选项 选择该命令将会弹出 选项 对话框 在该对话框中可以设置系统的行为 90 8 窗口 菜单组 窗口 菜单组包含用于操纵窗口的命令 如图2 27所示 主要包括 1 新建窗口 打开和当前活动窗口包含相同文档的另一个窗口 并成为当前活动窗口 两个窗口的内容保持同步编号 2 拆分 图2 27 窗口 菜单组将当前窗口拆分成多个窗格 这个可以方便地查看同一个文档的不同部分 91 3 可停靠 允许 禁止当前活动窗口的停靠特征 4 隐藏 隐藏当前活动的窗口 5 浮动 允许 禁止当前活动窗口的浮动特征 6 自动全部隐藏 允许 禁止全部窗口的浮动特征 7 关闭所有文档 如果项目中有没有保存的文件 系统会显示提示信息 8 窗口 列出最近打开的窗口文件名 最多可以列出10个 92 2 3Net集成开发环境上C 程序开发 C 应用程序的创建1 创建新项目 93 2 3Net集成开发环境上C 程序开发 C 应用程序的创建2 添加代码 94 2 3Net集成开发环境上C 程序开发 C 应用程序的创建3 运行程序保存项目 95 2 3Net集成开发环境上C 程序开发 C 程序的典型布局1usingSystem 2namespaceASimpleProject3 4 5 Class1的摘要说明 6 7classClass18 9 10 应用程序的主入口点 12 13 STAThread 14staticvoidMain string args 15 16 17 TODO 在此处添加代码以启动应用程序18 19Console WriteLine HelloWorld 20 21 22 96 本章小结 VisualStudio Net集成开发环境是微软提供的 用于创建 运行和调试各种 NET编程语言的程序 本章我们主要介绍了该集成开发环境的安装方法 以及它提供的窗口和菜单的各个功能 最后我们使用该集成开发环境创建了一个典型的C 应用程序 并介绍了进行C 开发的一般步骤和典型布局 97 第3章C 的基本语法 98 本章内容 C 的基本语法 C 的词法结构数据类型表达式操作符 99 3 1词法结构 词法是构成程序设计语言的最基本单位 程序是由若干个语句构成 而语句是由若干个具有特殊含义的单词和运算符构成的 所以学习一门新语言 首先应该从词法入手 100 3 1 1标识符 标识符 identifier 是程序开发人员为类型 方法 变量等所选择的名字 C 的标识符应当使用字母或下划线作为开头 由字母 数字 下划线 和美元符号 组成 不能包括空格 标点符号和运算符 而且标识符的名称最好和实际的应用联系起来 这样可以使程序更容易理解 下面列出了合法的标识符 Sum average total Student name tan Lotus 1 2 3下面列出了不合法的标识符 A B a b wait 33 bc 101 3 1 1标识符 C 的标识符区别大小写 这和C C 语言是一样的 例如下面的三个标识符是不同的 MembermemberMemBerC 的标识符不能与关键字相同 但是可以使用 前缀来避免这种冲突 例如 whilewhile上面两个单词中第一个单词是合法的标识符 而第二个单词不是合法标识符 因为while是个关键字 102 3 1 2关键字 同C和C 语言一样 C 也规定了很多关键字用于程序控制 数据说明或者其它功能 由于它们的特殊意义 所以这些关键字不能作为标识符使用 103 3 2数据类型 C 的数据类型采用了类似于C和C 语言的数据类型描述形式 但又有所改进 C 将所有的数据类型分成两大类 值类型引用类型 104 3 2 1值类型 值类型通常用来表示基本类型 简单类型 C 的值类型主要包括 整数类型布尔类型实数类型字符类型结构类型枚举类型 105 整数类型 C 定义了8种整数类型 短字节型 sbyte 字节型 byte 短整型 short 无符号短整型 ushort 整型 int 无符号整型 uint 长整型 long 无符号长整型 ulong 划分的依据是根据这些类型所占存储器的位数 106 布尔类型 布尔类型用来表示 真 和 假 两个逻辑概念 在C和C 语言中 用0来表示 假 用非 0 的值表示 真 但是C 语言中对上述表示进行的限制 C 中布尔类型只能取 真 和 假 两个值 分别用true和false两个关键字来表示boolx 1 错误 不存在这种写法 boolx true 正确 107 实数类型 C 采用两种数据类型来表示小数 单精度 float 和双精度 double 两者的差异主要取决于取值范围和精度 108 字符类型 C 提供字符 char 处理ASCII字符和Unicode编码的字符 ASCII字符是美国标准委员会提供的 采用7位二进制表示的字符 Unicode是国际标准化组织制定的采用16位二进制表示的字符 它可以表示世界上大多数语言 109 结构类型 有时需要将不同类型的数据组合成一个有机的整体以便使用 例如要编制一个学生信息管理系统 对全校学生的信息进行管理 一个学生具有学号 姓名 性别 年龄 地址等信息 如果使用简单数据类型分布存储这些信息的话 很难完成反映出这些信息的内在联系 所以应该将它们组织成一个整体 C 语言提供了结构类型 structure 允许用户根据实际的需要实现特定的数据类型 110 结构类型 例如学生信息管理 我们必须将一个学生的学号 姓名 性别 年龄 地址信息组合成一个新的数据类型 我们可以采用如下形式 structStudent publicintNo 记录学号信息publicstringName 记录学生姓名publiccharsex 学生性别publicintAge 学生年龄publicstringAddr 学生的地址 Students 111 枚举类型 在程序设计中 有时会用到由若干个有限数据元素组成的集合 可将这些数据集合定义为枚举类型 enum 枚举类型定义的一般形式为 enum枚举名 枚举值表 在枚举值表中应罗列出所有可用值 这些值也称为枚举元素 112 枚举类型 enumWeekday sun mon tue wed thu fri sat 该枚举名为Weekday 枚举值共有7个 即一周中的七天 按照系统默认 枚举中的每个元素的类型都是整型类型 且第1个元素的值为0 后面的元素按照加1递增 当然也可以给元素之间赋值 例如 enumWeekday sun 1 mon 4 tue wed thu fri sat 这样sun的值为1 mon的值为4 tue的值为5 以后值按照加1递增 113 3 2 2引用类型 引用类型 其含义是该类型的变量不直接存储所包含的值 而是指向它所要存储的值 在C 中提供以下引用类型给你使用 类类型字符串类型数组类型代表类型接口类型 114 类类型 类是面向对象编程的基本单位 它是一种包含数据成员 函数成员和嵌套类型的数据结构 类的数据成员有常量 域和事件 函数成员包括方法 属性 索引指示器 运算符 构造函数和析构函数 有关类的深入讲述我们放在第6章介绍 115 字符串类型 在C 中有一个用于操作字符串数据的基本字符串类型 字符串类直接派生自对象 且它是被密封的 这意味着再不能从它派生类 就象其它类型 字符串是预定义类SystemString的一个别名 它的用法十分简单 stringmyString sometext 116 数组 同C语言一样 C 语言中也有数组类型 但是与C语言中数组概念相比有了很大扩展 一个数组包含有通过计算下标访问的变量 所有包含于数组中且被当作元素的变量必须是同一类型 这种类型自然被称为 数组类型 117 数组 让我们看一下用一个数组初始化器初始化的数组 string arrLanguages C C C 该简写效果等同以下 arrLanguages 0 C arrLanguages 1 C arrLanguages 2 C 118 接口类型 一个接口是一个只有抽象成员的引用类型 C 中的接口只有方法名 但这些方法没有执行代码 下面我们定义一个接口IFace 它只有一个方法 interfaceIFace voidShowMyFace 119 委托类型 C 中的委托类型和C C 中的函数指针非常相似 C 中的委托类型有一个特性就是不需要知道被引用的方法属于那一个类对象 只要函数的参数个数与返回值与委托类型对象中的一致就可以了 定义一个委托类型 该类型名为MyDelegate delegatestringMyDelegate 120 委托类型 下面定义一个类MyClass 该类中包含一个名为SayHello的方法 请注意 该方法与我们上面声明的委托类型具有相同的参数个数和返回值 publicclassMyClass publicstringSayHello return Hellotheworld 121 委托类型 我们定义一个测试类TestMyClasspublicclassTestMyClass publicstaticvoidMain string args MyClassmyClass1 newMyClass MyDelegatemyDelegate1 newMyDelegate myClass1 SayHello 下面就使用myDelegate1代替对象myClass1的SayHello方法System Console WriteLine myDelegate1 输出结果为hellotheworld 与调用myClass1 SayHello 效果相同 122 3 2 3装箱和拆箱 装箱和拆箱是C 类型系统的核心概念 通过允许一个值类型转换成引用类型对象或从引用类型对象转换成值类型 这种机制形成了值类型和引用类型之间的捆绑连接 装箱转换给一个值装箱是指隐式地把任何值类型转换成类型对象 当一个值类型被装箱时 一个对象实例就被分配 且值类型的值被拷贝给新的对象 intnvalue 2000 objectobj nvalve 123 3 2 3装箱和拆箱 拆箱转换和装箱相比 拆箱操作是显式操作 你必须告诉编译器 想从对象中抽取出哪一种值类型 当执行拆箱操作时 C 编译器检测所请求的值类型实际上存储在对象实例中 经过成功的确认 该值才能被拆箱 下面我们举例说明如何进行拆箱操作 intnvalue 2000 objectobj nvalve intnret int obj 上例中 我们定义了一个整形的变量 一个对象变量 然后我们将对象变量显式转换为整形 并赋值给整形变量nret 124 3 3变量和常量 变量在计算机中变量代表存储地址 而变量的类型决定了存储在变量中的数值的类型 变量的命名原则应该复合标识符的命名规则 在命名时应给出具有描述性质的名称 这样写出来的程序便于理解 常量带有const修饰符声明的变量称为常量 常量就是其值固定不变的量constintx 10 125 3 3变量和常量 下面的例子说明了各个变量的不同类型 classA publicstaticintx inty voidF int v inta refintb outintc inti 1 c a b 在上面的变量声明中 x是静态变量 y是非静态变量 v 0 是数组元素 a是值参数 b是引用参数 c是输出参数 而i是局部变量 126 3 3变量和常量 静态变量带有static修饰符声明的变量称为静态变量 静态变量的生存期是从被装载起 至到包含了这个变量的程序运行结束为止 非静态变量不带有static修饰符声明的变量称为实例变量数组元素局部变量局部变量是指在一个独立的程序块中声明的变量 局部变量的生存周期只在该范围中有效 当程序运行到这一范围时 该变量即开始生效 程序离开时变量就失效了 127 3 4运算符和表达式 C 语言中的运算符和表达式 继承了C语言的运算符和表达式语言功能 从而使开发人员能够很快的从C语言开发转移到C 语言开发中来 128 3 4 1运算符的分类和优先级 依照操作符作用的操作数个数来分 可以将C 中操作符分成以下三类 一元操作符一元操作符作用于一个操作数 按照其所处操作数的位置 有可以分为前缀操作符和后缀操作符 例如 a x 前缀操作符x x 后缀操作符二元操作符二元操作符作用于两位操作数 使用时在操作数中间插入操作 例如 z x y z x y 三元操作符C 中仅有一个三元操作符 三元操作符作用于三个操作数 使用时在操作数中间插入操作符 例如 a b c 1 0 129 3 4 2算术操作符和算术表达式 算术运算符是进行算术运算的操作符 它实现了数学上基本的算术运算功能 这些运算符包括 加法运算符减法运算符乘法运算符除法运算符取模运算符 操作符用来求除法的商 而 操作符则用来求除法的余数 130 3 4 3赋值操作符和赋值表达式 赋值就是给一个变量赋一个新值 C 中提供的赋值表达式有 等于x x y 1 131 3 4 4关系操作符和关系表达式 关系运算实际上是逻辑运算的一种 我们可以把它理解为一种判断 判断的结果总是布尔值 C 中关系操作符主要包括 比较操作符is操作符as操作符 132 3 4 4关系操作符和关系表达式 比较操作符C 中定义的比较操作符有 等于操作符 不等于操作符 小于操作符 小于等于操作符 is操作符is操作符被用于动态地检查运行时对象类型是否和给定的类型兼容 运算 eisT 的表达式 其中e是一个表达式 T是一个类型 该运算返回值是一个布尔值 它表示e是否能通过引用转换 装箱转换或拆箱转换 成功地转换于T类型 133 3 4 4关系操作符和关系表达式 as操作符as操作符用于通过引用转换或装箱转换 将一个值显式地转换成指定的引用类型 它与像显式类型转换 不会产生任何异常 如果转换不能进行 那么结果值为null 关系表达式用关系操作符将两个表达式连接起来的式子就是关系表达式 关系表达式的值就是关系操作符的返回值 即一个布尔值关系表达式可以再作为关系操作符的操作数 也可以作为布尔值赋给赋值表达式 134 3 4 5逻辑操作符和逻辑表达式 C 语言提供了四种逻辑操作符 逻辑与 逻辑或 逻辑非 和逻辑判断 其中逻辑与和逻辑或是二元操作符 逻辑非是一元操作符 而逻辑判断是三元操作符 135 3 4 6位操作符 位操作符就是对数据按二进制位进行运算的操作符 C 语言中的位操作符有 与操作符 或操作符 异或操作符 取补操作符 左移操作符 136 3 4 7特殊操作符 new操作符new操作符用于创建一个新的类型实例typeof操作符typeof操作符用于获得系统原型对象的类型 例如 typeof int typeof System int32 typeof string typeof double 上面四个表达式的输出分别是 Int32 Iint32 string doublechecked和unchecked操作符checked和unchecked操作符用于整型算术运算时控制当前环境中的溢出检查 137 本章小节 本章我们介绍C 的基本语法 包括词法结构 数据类型 常量和变量以及运算符和表达式 C 数据类型主要包括 值类型和引用类型 C 语言为我们提供了丰富的操作符和表达式 用于各种情况下对数据的运算和处理 138 第4章C 语句 139 本章内容 C 程序的执行是由一系列按照文本顺序执行的语句进行的 C 的常用语句包括 基本语句条件语句循环语句跳转语句异常处理语句 140 4 1C 的基本语句 块语句块语句把一系列语句包装成一个语句 块语句的一般格式如下 一个或者多个语句 空语句空语句是一种最简单的语句 它不实现任何功能 C 中空语句的形式如下 141 4 1C 的基本语句 标签语句C 程序允许在一条语句前面使用标签前缀 这种语句类似于汇编语句 其形式如下 标签名称 语句用标签语句主要为配合goto语句完成程序的跳转功能 例如 if x 0 gotolarge x x large returnx 142 4 1C 的基本语句 声明语句声明语句主要完成对一个常量或者变量的声明 声明一个变量的语法结构如下 类型 变量 表达式 表达式语句表达式语句由表达式加上分号 组成 其一般形式为 表达式 143 4 2选择语句 当程序中需要进行两个或两个以上的选择时 可以根据条件判断来选择将要执行的一组语句 C 提供的选择语句有 if语句if 布尔表达式 语句块 switch语句switch 控制表达式 case常量表达式 语句块 default 语句块 144 4 3循环语句 C 提供了四种不同的循环机制 for循环语句foreach循环语句while循环语句do while循环语句 145 4 3 1for循环语句 其语法如下 for 初始化语句 条件判断语句 迭代语句 语句块 for inti 0 i 100 i Console WriteLine i 146 4 3 2foreach循环语句 语句的格式为 foreach 类型标识符in表达式 语句块 int A 1 2 3 foreach inttempinA Console WriteLine temp 147 4 3 3while循环语句 与for循环一样 while也是一个预测试的循环 如果其测试条件的值等于false while循环就不会执行 其语法是类似的 但是while循环只有一个表达式 while 循环测试条件 语句块 148 4 3 4do while语句 do while语句与while语句不同的是它将内嵌语句执行一次至少一次或若干次 do 语句块 while 循环测试条件 149 4 4跳转语句 C 提供了许多可以立即跳转到程序中另一行代码的语句 这些跳转语句包括 goto语句break语句continue语句return语句 150 4 4 1goto语句 goto语句可以直接跳转到程序中标签语句中 例如 gotolable1 Console WriteLine Thiswon tbeexecuted lable1 Console WriteLine Continuingexecutionformhere 151 4 4 2break语句 break语句可以用于for foreach while和do while循环 它提前结束循环操作 立即执行后面的语句如果break语句放在嵌套循环中 它只能跳出一层循环操作 而不是跳出整个嵌套循环操作 例如 for inti 0 i 10 i for intj 0 j 10 j if j 5 break 152 4 4 3continue语句 ontinue语句类似于break语句 它也适用于for foreach while或do while循环语句中 但是与break语句不同 它只从循环的当迭代是前迭代中退出 然后在循环的下一次迭代开始重新执行 而不是退出循环 例如 for inti 0 i 10 i if j 5 continue Console WriteLine can texecutehere 153 4 4 4return语句 return语句用于退出类的方法 把控制返回该方法的调用者 如果方法有返回类型 return语句必须返回这个类型的值 154 4 5异常处理语句 异常可以以两种不同的方式引发 throw语句无条件即时的抛出异常 C 语句和表达式执行过程中激发了某个异常的条件 使得操作无法正常结束 从而引发异常 例如整数除法 操作分母为零时将抛出一个System DivideByZeroException异常 155 4 5异常处理语句 在C 中的try语句提供了一种机制来捕捉块执行过程中发生的异常 以下是它的三种可能的形式 try catch s try finallytry catch s finally 156 本章小结 本章我们主要讲解了C 语言中的各类语句 包括基本语句 条件语句 循环语句 跳转语句和异常处理语句 有了这些语句 我们就能够控制程序执行的顺序 从而编写出各种应用程序 157 第五章概述 158 本章内容 概述方法的声明方法中的参数C 命名空间类方法的使用 159 5 1概述 C 中的程序模块称为方法和类 C 程序由方法和类组合而成 方法由一个方法调用语句来调用 这个方法调用描述了方法名 并且可提供调用该方法执行具体任务所需要的信息 参数 当方法调用完成后 该方法要么返回一个值给调用它的方法 要么只是简单地向调用它的方法返回控制 160 方法使得程序员可以模块化程序 用方法模块化程序有几种优点 一是这种分而治之的方式使得程序的开发易于管理 二是可以实现软件重用 使用已有的方法和类作为构件来创建新的程序 这样我们就可以使用正确的方法名和定义来创建由标准方法创建的程序 而不用构建自定义的代码 三是避免了程序中重复编写代码 以方法的形式封装起来的代码可以在程序中的几个位置 161 5 2方法的声明 方法是类中用于执行计算或其它行为的成员 下面是方法的声明格式 属性方法修饰符返回值类型方法名 参数列表 声明和语句 162 上面的第一行也被称为方法头 花括号圈起来的部分称为方法体 方法头中的方法修饰符可以是下面关键字中的一个 new public protected internal private static virtual sealed override abstract和extern 对于使用了abstract和extern修饰符的方法 方法的执行体中只能是空语句块 其它所有的方法执行体中 应包含调用该方法所要执行的语句 163 返回值类型是方法返回给其调用者结果的数据类型 方法至多可以返回一个值 当有返回值时 必须使用return语句返回与返回值类型一样的数据 当不想返回任何值时 可以使用void返回值类型 方法名可以是任何标识符 但是一般选择能够表示该方法操作的标识符 方法名不应与同一个类中的其它方法同名 也不能与类中的其它成员名称相同 164 参数列表是一个由逗号分隔开的列表 方法在其中定义了每个参数的类型和名称 方法调用时必须为该方法定义的每个参数指明一个参数值 并且这些参数值出现顺序也必须和该方法所定义的参数顺序相同 而且调用方法给的这些参数值的类型也必须和被调用方法的对应参数类型相一致 165 方法体是指一个程序块 如前所述 程序块是以花括号括起来的一组声明和语句 变量可以声明在任何程序块中 并且程序块可以嵌套 166 下例显示了方法声明和使用情况 usingSystem classTest publicintmax intx inty if x y returnx elsereturny publicvoidMain Console WriteLine themaxof6and8is 0 max 6 8 程序的输出是themaxof6and8is 8 167 5 3方法中的参数 C 中方法的参数有四种类型 它们分别是 值参数值参数不含任何修饰符引用参数以ref修饰符声明引用型参数输出参数以out修饰符声明输出参数数组参数 以params修饰符声明数组型参数 168 5 3 1值参数 当利用值向方法传递参数时 编译程序给实参的值做一份拷贝 并且将此拷贝传递给该方法 被调用的方法不会修改内存中实参的值 所以使用值参数时 可以保证实际值是安全的 169 5 3 1值参数 下面这个方法试图完成将两个数值进行交换 staticvoidSwap intx inty inttemp x x y y temp 170 5 3 1值参数 下面我们调用该函数完成两个数的交换 staticvoidMain inti 1 j 2 Swap i j Console WriteLine i 0 j 1 i j 上面调用的输出结果是 i 1 j 2 171 5 3 1值参数 分析 出现这种结果的原因是 Swap方法的参数是使用的值传递方式 上面我们强调了值参数在传递时 编译器会生成一份拷贝 所以Swap交换的实际上是拷贝的值 而不是实参的值 172 5 3 2引用参数 从上面例子中 我们知道值参数无法完成数值交换 如果要完成数据交换 必须在方法调用传入实参本身 而非实参的拷贝 C 为我们提供了另外一种参数传递方式 这就是引用参数 和值参不同的是引用型参数并不开辟新的内存区域 当利用引用型参数向方法传递形参时 编译程序将把实际值在内存中的地址传递给方法 173 5 3 2引用参数 下面我们还是以交换两个数值的例子来讲解引用参数的使用 staticvoidSwap refintx refinty inttemp x x y y temp 174 5 3 2引用参数 因此我们在调用Swap时需要如下调用 staticvoidMain inti 1 j 2 Swap refi refj Console WriteLine i 0 j 1 i j 这次函数输出结果为 i 2 j 1 175 5 3 3输出参数 与引用型参数类似 输出型参数也不开辟新的内存区域 与引用型参数的差别在于 调用方法前无需对变量进行初始化 输出型参数用于传递方法返回的数据 在调用含有引用参数的方法 需要在传递参数时 使用out关键字来声明该参数为输出参数 在方法返回后 传递的变量被认为经过了初始化 176 5 3 3输出参数 下面我们就引用参数和输出参数 举例来做一对比 staticvoidSquareRef refintx x x x staticvoidSquareOut outintx x 8 x x x 177 5 3 3输出参数 staticvoidMain inti 3 j SquareRef refi SquareOut outj Console WriteLine i 0 j 1 i j 函数输出结果为 i 9 j 64 17
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!