登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』C# Windows应用开发项目教程

書城自編碼: 2974408
分類: 簡體書→大陸圖書→教材高职高专教材
作 者: 包芳、陈东东、周建林、严洪涛、屠莉、吴懋刚
國際書號(ISBN): 9787302441588
出版社: 清华大学出版社
出版日期: 2017-03-01
版次: 1 印次: 1
頁數/字數: 275/421000
書度/開本: 128开 釘裝: 平装

售價:NT$ 346

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
这就是心理咨询:全球心理咨询师都在用的45项技术(第3版)
《 这就是心理咨询:全球心理咨询师都在用的45项技术(第3版) 》

售價:NT$ 717.0
正说清朝十二帝(修订珍藏版)
《 正说清朝十二帝(修订珍藏版) 》

售價:NT$ 493.0
黑海史:从历史涟漪到时代巨浪
《 黑海史:从历史涟漪到时代巨浪 》

售價:NT$ 538.0
我,毕加索
《 我,毕加索 》

售價:NT$ 280.0
投资真相
《 投资真相 》

售價:NT$ 381.0
非洲大陆简史(萤火虫书系)
《 非洲大陆简史(萤火虫书系) 》

售價:NT$ 437.0
知宋·宋代之军事
《 知宋·宋代之军事 》

售價:NT$ 442.0
我能帮上什么忙?——一位资深精神科医生的现场医疗记录(万镜·现象)
《 我能帮上什么忙?——一位资深精神科医生的现场医疗记录(万镜·现象) 》

售價:NT$ 381.0

編輯推薦:
本书基于.NET软件编码员的岗位需求,在.NET框架内,基于Windows窗体项目开发介绍Windows应用程序的设计思路、OOP基本概念、ADO.NET数据库访问技术、三层体系架构、简单工厂模式等关键基础技术。本书以实际项目学生选课管理系统为载体,通过项目的逐步重构和完善,使读者深入、全面地掌握以上Windows窗体项目开发技术。本书可作为高职高专软件专业的教材,也可作为广大Windows窗体项目开发人员的参考书。
內容簡介:
本书以Microsoft Visual Studio 2013为集成开发环境,通过对实际项目(学生选课管理系统)
的逐步重构和完善过程,引导读者全面、深入地掌握C# Windows应用项目的开发技术。本书主要
介绍C# Windows应用项目的设计思路和开发步骤、OOP基本概念、ADO.NET数据库访问技术、三
层体系架构、简单工厂模式等.NET开发的关键技术。
本书采用由点及面、由易到难、逐步完善的项目化内容组织方式,逐步介绍C#窗体项目开发
的关键技术及其应用技能。本书中涉及的关键技术不仅可用于开发三层架构的C#窗体应用软件,
对于读者后续学习各类框架开发更起着奠定基础、知根溯源的作用。
本书适用于高职高专院校软件专业的学生学习,也适用于广大需要开发C# Windows应用项目
的读者学习。
目錄



第一阶段
开 发 准 备

任务1 Visual Studio 2013开发环境的安装 003

1.1 情境描述 003

1.2 相关知识 003

1.2.1 Visual Studio 2013的特点 003

1.2.2 .NET框架的组成 003

1.2.3 .NET 环境下程序的编译执行过程 004

1.3 安装实施 005

任务2 欢迎窗体 008

2.1 情境描述 008

2.2 相关知识 008

2.2.1 软件分类及其运行机制 008

2.2.2 控件及其属性 009

2.2.3 事件及事件驱动机制 010

2.2.4 控件的事件 010

2.2.5 控件的方法 011

2.2.6 基于事件驱动机制的 Windows
窗体应用程序设计思路 011

2.2.7 标签、图片和窗体控件 011

2.3 实施与分析 013

2.3.1 欢迎窗体的设计思路 013

2.3.2 欢迎窗体的实现 013

2.3.3 测试与改进 015

2.4 知识拓展 016

2.4.1 引用命名空间 016

2.4.2 程序集和反射 016

任务3 加法运算练习游戏 018

3.1 情境描述 018

3.2 相关知识 019

3.2.1 预定义和自定义类型 019

3.2.2 标识符和命名规范 020

3.2.3 变量和常量 021

3.2.4 值类型和引用类型 022

3.2.5 运算符 023

3.2.6 控制语句 023

3.2.7 文本框和按钮控件 025

3.3 实施与分析 026

3.3.1 加法运算练习游戏的设计思路 026

3.3.2 加法运算练习游戏的实现 027

3.3.3 测试与改进 029

3.4 知识拓展 030

3.4.1 装箱和拆箱 030

3.4.2 字符串和正则表达式 031

任务4 随机抽号游戏 035

4.1 情境描述 035

4.2 相关知识C#的数组 035

4.3 实施与分析 036

4.3.1 随机抽号游戏的设计思路 036

4.3.2 随机抽号游戏的实现 036

4.3.3 测试与改进 037

4.4 知识拓展 038

4.4.1 窗体的描述 038

4.4.2 分布式类 039

4.4.3 项目中窗体的命名规范 039

任务5 Person类及其对象 041

5.1 情境描述 041

5.2 相关知识 041

5.2.1 OOP概述 041

5.2.2 类的定义 042

5.2.3 类的字段与属性 043

5.2.4 类的方法 045

5.2.5 类的实例化 047

5.2.6 对象的应用 050

5.2.7 组框控件 051

5.3 实施与分析 051

5.3.1 Person类的设计应用思路 051

5.3.2 Person类及其对象应用的实现 051

5.3.3 测试与改进 053

5.3.4 Course类的设计与应用 054

5.4 知识拓展 056

5.4.1 静态成员 056

5.4.2 常量成员 057

5.4.3 方法的重载 057

5.4.4 委托和事件 058

5.4.5 值参数 061

5.4.6 引用参数 062

5.4.7 输出参数 063

5.4.8 参数数组 064

第二阶段
项目开发原始版本

任务6 项目的需求分析 073

6.1 情境描述 073

6.2 相关知识软件开发流程概述 073

6.3 项目需求概述 074

任务7 项目的总体设计 078

7.1 情境描述 078

7.2 相关知识应用程序的分层架构 078

7.3 项目总体设计 079

7.4 项目重构过程设计 081

7.5 项目中类的设计和应用 087

任务8 基于两层架构的课程浏览查询模块 089

8.1 情境描述 089

8.2 相关知识 090

8.2.1 ADO.NET概述 090

8.2.2 OleDbConnection 类 091

8.2.3 OleDbDataAdapter 类 093

8.2.4 DataSet 类 093

8.2.5 DataGridView控件 093

8.3 实施与分析 094

8.3.1 课程浏览查询的设计思路 094

8.3.2 课程浏览查询的实现 095

8.3.3 测试与改进 097

任务9 基于两层架构的课程添加删除模块 099

9.1 情境描述 099

9.2 相关知识 099

9.2.1 格式化字符串 099

9.2.2 OleDbCommand类 100

9.2.3 OleDbDataReader类 102

9.3 实施与分析 103

9.3.1 课程添加的设计思路 103

9.3.2 课程添加的实现 104

9.3.3 课程删除的设计思路 105

9.3.4 测试与改进 105

任务10 数据访问类DBHelper的设计和应用 107

10.1 情境描述 107

10.2 相关知识 107

10.2.1 数据操作类的设计思路 107

10.2.2 连接字符串字段 108

10.2.3 数据操作方法 109

10.3 实施与分析 110

10.3.1 DBHelper数据操作类的设计 110

10.3.2 应用DBHelper数据操作类
优化代码 111

10.3.3 测试与改进 113

10.4 相关拓展 113

第三阶段
项目开发重构过程

任务11 向三层架构的转换 125

11.1 情境描述 125

11.2 相关知识 126

11.2.1 三层架构的划分原理 126

11.2.2 对象关系映射ORM 127

11.3 实施与分析 128

11.3.1 向三层架构转换的设计思路 128

11.3.2 向三层架构转换的实现 129

11.3.3 测试与改进 129

任务12 基于三层架构的课程浏览查询重构 132

12.1 情境描述 132

12.2 相关知识泛型集合 132

12.3 实施与分析 134

12.3.1 课程浏览的三层架构设计思路 134

12.3.2 课程查询的三层架构设计思路 135

12.3.3 课程浏览和查询的实现 136

12.3.4 测试与改进 140

任务13 基于三层架构的课程添加重构 142

13.1 情境描述 142

13.2 课程添加的三层架构设计思路 142

13.2.1 课程添加的数据访问类 142

13.2.2 课程添加的业务逻辑类 143

13.2.3 课程添加的表现层 144

13.3 课程添加的三层架构实现 144

13.3.1 操作步骤 144

13.3.2 DAL层 144

13.3.3 BLL层 145

13.3.4 UI层 145

13.3.5 测试与改进 146

任务14 基于三层架构的课程删除重构 149

14.1 情境描述 149

14.2 相关知识 150

14.2.1 自定义链接列 150

14.2.2 数据网格中行值的获取 150

14.3 课程删除的三层设计思路 151

14.3.1 课程删除的数据访问类 151

14.3.2 课程删除的业务逻辑类 151

14.3.3 课程删除表现层 152

14.4 课程删除的三层架构实现 152

14.4.1 操作步骤 152

14.4.2 DAL层 152

14.4.3 BLL层 152

14.4.4 UI层 153

14.4.5 测试与改进 153

14.5 知识拓展:取单条记录到实体类对象 154

第四阶段
项目开发最终版本

任务15 用户登录模块 161

15.1 情境描述 161

15.2 业务分析 162

15.3 相关知识 164

15.3.1 MDI窗体 164

15.3.2 MenuStrip菜单控件 164

15.3.3 窗体间的跳转 164

15.3.4 RadioButton单选按钮控件 164

15.4 界面制作 165

15.4.1 登录界面及软件首页设置 165

15.4.2 管理员主界面 166

15.5 登录的三层架构设计思路 166

15.5.1 学生登录的三层架构设计 166

15.5.2 管理员登录的三层架构设计 167

15.6 登录的三层架构实现 168

15.6.1 操作步骤 168

15.6.2 DAL层 168

15.6.3 BLL层 169

15.6.4 UI层 169

15.6.5 测试与分析 170

任务16 管理员选课查询模块 172

16.1 情境描述 172

16.2 业务分析 172

16.3 相关知识下拉列表框控件 174

16.4 选课查询的三层架构设计思路 175

16.5 选课查询的三层实现 176

16.5.1 界面制作 176

16.5.2 操作步骤 176

16.5.3 DAL层 176

16.5.4 BLL层 177

16.5.5 UI层 177

16.5.6 测试与分析 178

任务17 学生选课退选模块 180

17.1 情境描述 180

17.2 业务分析 180

17.2.1 学号传递的分析 181

17.2.2 退选的分析 181

17.2.3 选课的分析 182

17.3 相关知识 183

17.3.1 学号在窗体间的传递 183

17.3.2 异常捕捉 184

17.3.3 数据访问类DBHelper类的
重构 185

17.4 选课退选设计思路 187

17.4.1 子功能1:已选总学分的三层
架构设计 187

17.4.2 子功能2:已选课程列表的
三层架构设计 187

17.4.3 子功能3:退选的三层架构
设计 188

17.4.4 子功能4:选课的三层架构
设计 189

17.5 选课退选的实现 190

17.5.1 界面设计 190

17.5.2 操作思路 190

17.5.3 配置文件的修改 191

17.5.4 子功能1:已选总学分 191

17.5.5 子功能2:已选课程列表 191

17.5.6 子功能3:退选 192

17.5.7 子功能4:选课 193

17.5.8 测试与分析 195

17.6 知识拓展应用委托和事务实现已选
总学分的实时更新 196

第五阶段
项目的数据库迁移

任务18 迁移的分析与设计 201

18.1 情境描述 201

18.2 相关知识 201

18.2.1 OOP再述 201

18.2.2 继承 202

18.2.3 多态的概念 204

18.2.4 方法的隐藏 204

18.2.5 方法的覆盖 205

18.2.6 抽象类 207

18.2.7 接口 209

18.2.8 简单工厂模式 212

18.3 数据库迁移的设计思路 214

任务19 迁移的实现 218

19.1 情境描述 218

19.2 实施与分析 218

19.2.1 设计数据访问类公共接口
IDAL 218

19.2.2 重构原Access数据访问类
AccessDAL 220

19.2.3 设计新的SQL Server数据
访问类SQLServerDAL 220

19.2.4 设计工厂类DALFactory 228

19.2.5 重构业务逻辑层 229

第六阶段
项目的安装部署

任务20 安装包的制作 235

20.1 情境描述 235

20.2 相关知识 235

20.2.1 新建安装项目 235

20.2.2 应用程序文件夹 235

20.2.3 用户的程序菜单 236

20.2.4 卸载功能 237

20.2.5 用户桌面 238

20.2.6 安装路径 238

20.2.7 .NET框架等系统环境
的打包 238

20.2.8 SQL Server数据库的打包 239

20.3 实施与分析 239

20.3.1 生成安装文件夹 239

20.3.2 简单测试 239

任务21 安装包的部署 241

21.1 情境描述 241

21.2 实施与分析 241

21.2.1 安装软件 241

21.2.2 卸载软件 242

21.2.3 简单测试 242


识 梳 理


考 文 献
內容試閱
前 言
目前的高职高专教学强调基于工作岗位需求的课程体系设计以及基于工作过程的课程开发。
首先,本书基于对软件编码员的岗位需求。在微软的.NET框架内,Windows应用项目的开发是一个重要的工作领域。因此,本书的重点内容为C# Windows应用项目的设计思路和开发步骤、OOP基本概念、ADO.NET数据库访问技术、三层体系架构、简单工厂模式等.NET开发的关键技术。本书中,以上内容以实际项目(学生选课管理系统)为载体,通过对其逐步的重构和完善,使读者能够深入、全面地掌握此类项目的开发技术和开发过程。
本书的内容结构设计如下图所示。
第一阶段:开发准备
这一阶段通过5个工作任务的实施,介绍项目开发环境,项目开发必须要掌握的基础语法和事件驱动机制,以及项目中自定义类的设计与应用,引入OOP基本概念。
第二阶段:项目开发原始版本
这一阶段首先是学生选课管理系统的需求分析和总体设计,然后用两层架构完成课程管理模块,并用自定义数据访问类进行初步的重构。在此过程中引入ADO.NET数据库访问技术。
第三阶段:项目开发重构过程
这一阶段用三层架构重构课程管理模块,在重构的过程中让读者体会三层架构的必要性、优越性,熟悉从两层向三层转换的详细过程,以及用三层架构实现常用功能的技术。
第四阶段:项目开发最终版本
这一阶段用三层架构实现选课系统的其余所有模块,让读者能熟练地理解三层架构,从而达到当面对任意的任务需求,都能应用三层架构来实现。
第五阶段:项目的数据库迁移
这一阶段通过实现项目的数据库迁移,引入继承、多态、简单工厂模式等OOP开发的高级技术。
第六阶段:项目的安装部署
这一阶段通过实现项目的安装和部署,让读者理解窗体类项目的实际安装和维护的基本知识。
知识梳理
由于本书的知识点都是根据项目任务的需求而设置的,在此对本书的理论知识进行系统的梳理,以便读者参考。
其次,本书通过仿真编码员的典型工作过程:接受任务理解任务编码思路设计编码实现简单测试,来具体进行各基本单元的设计。
在每个阶段中,包含若干工作任务,工作任务的设计均仿真编码员的实际工作过程。在每个任务中,基本包含以下环节:①情境描述,作为任务的接收环节;②业务流程分析,作为其任务的理解环节;③相关知识与技能,作为其设计决策的依据;④设计思路,引导学生应用知识,依据业务流程,设计实现思路,作为其设计环节;⑤实施与分析,作为其编码实现和测试环节;⑥知识拓展,对一些经典的、但没有包含在情境内的知识点进行讲解和应用,以提升本书的普适性。
本书所对应的课程为面向对象程序设计,其前序课程应包含类似于结构化程序设计、数据库技术基础的相关课程,使读者具备基本的编码思路和关系数据库的基本概念;后续课程为Web项目开发等。本书所包含的OOP概念、ADO.NET数据库访问技术、三层架构等基础,对Web项目开发起着奠定基础、知根溯源的作用。
本书适用于高职高专院校软件专业的学生学习,也适用于广大需要开发C# Windows应用项目的读者学习。
本书不仅从易到难讲透关键技术,更包含实际岗位工作的过程步骤,具体特点如下。
(1)采用由点及面、由简到难、逐步重构项目的内容组织方式。在重构过程中,有利于巩固读者对基础知识的理解和应用能力,有利于读者体会三层架构的必要性、优越性,以及在从低级向高级的重构中,通过详细的转换过程,让读者对于关键技术真正知其然,也知其所以然。
(2)结合并仿真软件编码岗位的典型工作过程,各任务的设计均仿真实际工作过程,有利于读者锻炼就业岗位所需工作技能。
主要创作团队为课程组的包芳、陈东东、屠莉,以及周建林、严洪涛老师。陈士川、吴懋刚老师进行了细致的总审。当然也离不开家人和其余领导同事的关心支持,在此一并表示真挚的感谢!
编 者
2017年1月


3.1 情境描述
选择了开发环境并理解了事件驱动机制以后,要开发项目,还需掌握C#语言的语法。
本任务的目标是完成如图3.1和图3.2所示的小学生加法运算练习游戏。这个小软件的功能是在窗体中的 两边出现2个10 以内的随机数,让用户(适合于小学生)在文本框内输入其和,然后单击OK按钮。若输入的和是正确的,则跳出一个红色的图片,同时提示答对了,如图3.1所示;若输入的和是错误的,则跳出一个黑色的图片,同时提示答错了,并给出正确答案(供用户学习参考)的提示,如图3.2所示。
要实现这样的练习软件,除了上个任务中用到的事件驱动机制和各类控件外,必然还要实现包括对输入的两个数和的计算、与正确的和是否相同的判断等功能。
任务3
加法运算练习游戏
图3.1
运算练习正确的界面
.
图3.2
运算练习错误的界面
.
任务3 加法运算练习游戏
019
这就需要用到C#语言的基础语法,如数据类型、运算符和控制语句,还需要其他的常用控件。
在此任务的完成过程中,读者可以接触到C#的数据类型、变量常量、运算符、控制语句等基础语法,掌握以上知识点及其在软件开发中的应用。
3.2 相关知识
3.2.1 预定义和自定义类型
Microsoft Visual C# (读作 C sharp)是一种面向对象的编程语言,它是为生成在.NET框架上运行的应用程序而设计的。C# 简单、功能强大、类型安全、面向对象,并且其语法表现力强,只有不到 90 个关键字,而且简单易学。其大括号语法使任何熟悉 C、C 或 Java 的人都可以立即上手,了解上述任何一种语言的开发人员通常在很短的时间内就可以开始使用 C# 高效地工作。
在此,将通过介绍C#语言的数据类型、运算符、控制语句等,为相关的软件开发打下语法基础。
C#程序包含一组类型的命名空间。面对一个待解决的任务,首先要设计一个或多个类,然后实例化这些类,来解决问题。C#的类型从表现形式上可以分为预定义类型和自定义类型。
1. 预定义类型
C#提供了15种预定义类型,这些类型在.NET框架中都有相应的框架类型与之对应。C#的类型是这些框架类型在C#语言中的别名,C#的类型其首字母小写;框架中的类型,其首字母大写。在C#中也可以使用框架类型,但建议使用自己的类型。C#中的预定义类型如图3.3所示。
预定义的简单类型描述见表3.1。
图3.3
C#中的预定义类型
.
C# Windows应用开发项目教程
020
020
名 称
含 义
范 围
.NET框架类型
默认值
sbyte
8位有符号整数
128~127
System.SByte
0
byte
8位无符号整数
0~255
System.Byte
0
short
16位有符号整数
32768~32767
System.Int16
0
ushort
16位无符号整数
0~65535
System.UInt16
0
int
32位有符号整数
2147483648~2147483647
System.Int32
0
uint
32位无符号整数
0~4294967295
System.UInt32
0
long
64位有符号整数
9223372036854775808~
9223372036854775807
System.Int64
0
ulong
64位无符号整数
0~18446744073709551615
System.UInt64
0
float
单精度浮点数
1.51045~3.41038
System.Single
0.0f
double
双精度浮点数
510324~1.510308
System.Double
0.0d
decimal
小数类型实数
1.01028~7.91028
System.Decimal
0m
bool
布尔型数
truefalse
System.Boolean
false
char
Unicode字符
单个字符和转义字符
System.Char
''\0''
预定义类型中的非简单数据类型描述见表3.2,其中object是类库模型中倒置树的最顶层的根节点。
名 称
含 义
.NET框架类型
默认值
string
Unicode字符串
System.String
null
object
所有类型的基类
System.Object
null
2. 用户自定义类型
用户可以创建6种自定义的类型:类类型(class)、结构类型(struct)、数组类型(array)、枚举类型(enum)、委托类型(delegate)以及接口类型(interface)。
自定义类型应该先声明,后应用。声明以后,就可以定义这种类型的数据,或创建其实例对象了。其中类、数组、接口等是本书的重点内容。
3.2.2 标识符和命名规范
C#中标识符用于命名类、变量、常量等。命名的语法规则和C语言一致,均为由字母或下划线开头的字母、数字、下划线串,并且区分大小写。如 a、_a、a1、A等都是正确的标识符。
有的标识符是系统预保留使用的,用户不能用其命名,这样的标识符称关键字。C#的一般关键字见表3.3。
abstract
bool
case
checked
continue
delegate
else
as
break
catch
class
decimal
do
enum
base
byte
char
const
default
double
event
表3.1
简单数据类型
表3.2
非简单数据类型
表3.3
C#的一般关键字
explicit
goto
lock
override
sbyte
switch
unchecked
extern
if
long
params
sealed
this
unsafe
false
implicit
namespace
private
short
throw
ushort
finally
in
new
protected
sizeof
true
using
fixed
int
null
public
stackalloc
try
virtual
float
interface
object
readonly
static
typeof
void
for
internal
operator
ref
string
uint
volitale
foreach
is
out
return
struct
ulong
while
在C#中,还有一类关键字称为上下文关键字,它们在特定的语法结构中充当关键字,而在其余部分可用作一般标识符,但笔者建议不要用其起名,C#的上下文关键字见表3.4。
ascending
equals
group
let
partial
value
by
from
into
on
select
where
descending
get
join
orderby
set
yield
1. 常用的命名规范
标识符主要有Pascal及Camel两种大小写命名规范。
(1) Pascal大小写规则:该规则约定在标识符中使用的所有单词的第一个字符都大写,并且不使用空格和符号,如AddUser、GetMessageList。
(2) Camel大小写规则:该规则约定在标识符中使用的第一个单词的首字母小写,其余单词的首字母都大写,如addUser、getMessageList。
2. C#命名约定
(1)类名、方法名推荐使用 Pascal大小写规则,如Class、Student。
(2)字段名、中间变量、参数推荐使用 Camel大小写规则,如:my Age。
(3)常量推荐使用全大写及下划线命名,如PI 、CONN_STRING。
3.2.3 变量和常量
1. C#中的变量
C#中的变量包括方法中的参数和局部变量,以及类的字段。方法的参数用于在实参和形参之间传递数据。方法的局部变量类似于C语言中一般的变量,用于存放处理过程中的中间数据。类的字段,在后面章节介绍。
变量的定义形式如下。
类型 字段参数局部变量名
2. C#中的常量
C#的常量亦包含直接常量和符号常量。符号常量在后面的任务中讲解,这里先讲解直接常量。
(1)整型直接常量:可以加前缀和后缀。前缀有0x(数字0,小写字母x)表示
续表
表3.4
C#的上下文关键字
十六进制数;没有前缀则表示十进制数。后缀可以有u(小写字母u)、l(小写字母l)、U(大写字母U)、L(大写字母L),分别表示无符号数或长整型数,不建议用小写的,因为很容易与数字1混淆。如0x10、10、10L、10U等都是合法的整型直接常量。
(2)实型直接常量:实型的直接常量可能包含以下部分十进制数字、小数点、指数部分(Ee)以及后缀。其中,小数点的前面可以没有数字,其后面一定要有数字;Ee的前面一定要有数字,后面一定是整数。后缀Ff表示float型数据;Dd表示double型数据; Mm表示decimal型数据;若无后缀则默认为double。例如,36、1e10、236F等都是合法的实型直接常量。
(3)字符型直接常量:用一对''括起的一个字符或转义字符,转义字符见表3.5。
名 称
转义字符
十六进制编码
空字符Null
\0
0x0000
警告Alert
\a
0x0007
退格符Backspace
\b
0x0008
水平制表符Horizontal Tab
\t
0x0009
换行符
\n
0x000A
垂直制表Vertical Tab
\b
0x000B
换页符
\f
0x000C
回车符
\r
0x000D
双引号
\"
0x0022
单引号
\''
0x0027
反斜杠
\0x005C
(4)字符串直接常量:用一对"括起的一个或多个字符。
3.2.4 值类型和引用类型
从数据在内存中存储性质的角度,C#的数据类型又可以分为值类型和引用类型。操作系统在内存中为应用程序的数据开辟了两种逻辑存储区域:栈和堆。操作系统维护它们的细节,学习本课程时不用了解。
值类型的数据在栈中占据了一段内存,存放实际数据。而引用类型需要两段内存,一段在栈中,起到引用作用(既实际数据的地址,相当于C中的指针);另一段在堆中,存放了用new运算符(在后续案例中讲解)生成的实际数据。二者关系为由引用指向这堆数据。值类型和引用类型的示意图分别如图3.4和图3.5所示。
表3.5
转义字符
图3.4
值类型示意图
.
图3.5
引用类型示意图
.

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.