描述
开 本: 16开纸 张: 纯质纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302488958
本书特色
零基础、入门级的讲解
无论您是否从事计算机相关行业,无论您是否接触过C#编程语言,都能从本书中找到适合的起点。
超多、实用、专业的范例和项目
本书在编排上紧密结合深入学习C#编程技术的先后过程,从C#的基本语法开始,带领大家逐步深入地学习各种应用技巧,侧重实战技能,使用简单易懂的实际案例进行分析和操作指导,让读者读起来简明轻松,操作起来有章可循。
随时检测自己的学习成果
每章首页中,均提供了学习目标,以指导读者重点学习及学后检查。
大部分章节有“跟我学上机”板块,均根据本章内容精选而成,读者可以随时检测自己的学习成果和实战能力,做到融会贯通。
细致入微、贴心提示
本书在讲解过程中,在各章中使用了“注意”和“提示”等小贴士,使读者在学习过程中更清楚地了解相关操作、理解相关概念,并轻松掌握各种操作技巧。
专业创作团队和技术支持
本书由千谷高新教育中心编著和提供技术支持。
若您在学习过程中遇到任何问题,可加入QQ群(案例课堂VIP)进行提问,专家会在线答疑。
超值赠送资源
全程同步教学录像
涵盖本书所有知识点,详细讲解每个实例及项目的过程及技术关键点。比看书更轻松地掌握书中所有的C#编程语言知识,而且扩展的讲解部分使您得到比书中更多的收获。
超多容量资源大放送
赠送大量资源,包括本书实例源文件、精美教学幻灯片、精选本书教学视频、Visual Studio 2017常用快捷键、C#类库查询手册、C#控件查询手册、C#程序员面试技巧、C#常见面试题、C#常见错误代码及解决方案、C#开发经验及技巧大汇总等。
《C#程序开发案例课堂》以零基础讲解为宗旨,用实例引导读者深入学习,采取“基础入门→核心技术→高级应用→项目开发实战”的讲解模式,深入浅出地讲解C#的各项技术及实战技能。
《C#程序开发案例课堂》第1篇“基础入门”主要内容包括揭开C#神秘面纱、C#基本语法、C#程序结构、面向对象入门、面向对象的重要特征、集合与泛型;第2篇“核心技术”主要内容包括常用窗体控件、高级窗体控件、C#文件流、多线程操作、语言集成查询LINQ、异常和调试;第3篇“高级应用”主要内容包括ADO.NET操作数据库、GDI 技术、开发网络应用程序、在C#中操作注册表、水晶报表、应用程序打包;第4篇“项目开发实战”主要内容包括开发图书管理系统、开发社区互助系统、开发电影票预订系统和开发人事管理系统。
《C#程序开发案例课堂》适合任何想学习C#编程语言的人员,无论您是否从事计算机相关行业,无论您是否接触过C#语言,通过学习均可快速掌握C#在项目开发中的知识和技巧。
目 录
第1篇 基础入门
第1章 揭开C#的神秘面纱——我的
第一个C#程序 3
1.1
C#简介 4
1.2
NET框架 5
1.3
Visual C#的开发环境 5
1.3.1
安装Visual Studio 2017的条件 5
1.3.2
安装Visual Studio 2017 6
1.4 熟悉开发环境 7
1.4.1
创建项目 8
1.4.2
菜单栏 9
1.4.3
工具栏 11
1.4.4
工具箱面板 11
1.4.5
属性面板 12
1.4.6
错误列表 12
1.4.7
输出面板 13
1.5 创建第一个简单的Visual C#应用程序 13
1.6 如何学好C# 14
1.7 大神解惑 15
1.8 跟我学上机 16
第2章 零基础开始学习
——C#基本
语法 17
2.1
C#的程序结构 18
2.1.1
注释 18
2.1.2
命名空间 18
2.1.3
类 20
2.1.4
Main方法 20
2.1.5
标识符与关键字 21
2.1.6
C#语句 22
2.2 程序的编写规范 22
2.2.1
代码书写规则 22
2.2.2
命名规范 22
2.3 数据类型 23
2.3.1
变量 23
2.3.2
常量 24
2.3.3
值类型 24
2.3.4
引用类型 32
2.3.5
值类型和引用类型的区别 34
2.3.6
类型转换 36
2.4 运算符和表达式 40
2.4.1
表达式 41
2.4.2
运算符 41
2.4.3
运算符优先级 49
2.5 大神解惑 50
2.6 跟我学上机 50
第3章 控制程序运行方向
——C#程序
结构 51
3.1 顺序结构 52
3.2 选择结构 52
3.2.1
if语句 52
3.2.2
if…else语句 53
3.2.3
选择嵌套语句 54
3.2.4
switch分支结构语句 55
3.3 循环结构 57
3.3.1
while语句 57
3.3.2
do…while语句 58
3.3.3
for语句 59
3.3.4
循环语句的嵌套 60
3.4 其他语句 61
3.4.1
break语句 61
3.4.2
continue语句 62
3.4.3
goto语句 63
3.4.4
return语句 63
3.5 大神解惑 64
3.6 跟我学上机 65
第4章 主流软件开发方法——面向对象
入门 67
4.1 面向对象编程思想 68
4.1.1
面向对象概述 68
4.1.2
面向对象编程解决问题的方法 68
4.1.3
面向对象编程的特点 69
4.2
C#中的类 70
4.2.1
类的概念 71
4.2.2
类的声明 71
4.2.3
类的成员:属性、方法 72
4.2.4
构造函数和析构函数 78
4.3
C#中的对象 81
4.3.1
对象的概念 81
4.3.2
对象与类的关系 81
4.3.3
对象的创建 81
4.4 分部类 82
4.5 结构与类 83
4.5.1
结构的定义和使用 83
4.5.2
结构与类的区别 85
4.6 大神解惑 86
4.7 跟我学上机 86
第5章 深入了解面向对象——面向对象
的重要特征 87
5.1 类的封装性 88
5.2 类的继承性 88
5.2.1
继承性概述 89
5.2.2
继承性的规则 90
5.3 类的多态性 91
5.3.1
覆盖性重写 91
5.3.2
多态性重写 92
5.4 接口 95
5.4.1
接口的概念及声明 95
5.4.2
接口的实现 96
5.4.3
继承多个接口 97
5.5 抽象类与抽象方法 99
5.5.1
抽象类 99
5.5.2
抽象方法 100
5.5.3
抽象类与接口 101
5.6 委托 101
5.6.1
委托的声明 102
5.6.2
实例化委托 102
5.6.3
调用委托 102
5.7 事件 103
5.7.1
定义事件 103
5.7.2
订阅事件 104
5.7.3
触发事件 104
5.8 大神解惑 105
5.9 跟我学上机 106
第6章 特殊的类——集合与泛型 107
6.1 数组概述 108
6.2 一维数组的声明和使用 108
6.2.1
一维数组的定义 108
6.2.2
一维数组的使用 110
6.3 二维数组的声明和使用 111
6.3.1
二维数组的定义 111
6.3.2
二维数组的使用 112
6.4 数组的基本操作 114
6.4.1
遍历数组 114
6.4.2
数组Array类的常用操作 115
6.5
ArrayList集合 117
6.5.1
ArrayList概述 117
6.5.2
ArrayList的操作 119
6.5.3
Array与ArrayList的区别 122
6.6
HashTable集合 122
6.6.1
HashTable概述 122
6.6.2
HashTable的操作 124
6.7 泛型 125
6.7.1
泛型概述 126
6.7.2
泛型集合 128
6.7.3
泛型接口 130
6.7.4
泛型类 131
6.7.5
泛型方法 134
6.8 大神解惑 135
6.9 跟我学上机 136
第2篇 核心技术
第7章 Windows应用程序开发初步
——常用窗体控件 139
7.1
Windows窗体简介 140
7.1.1
WinForm窗体的概念 140
7.1.2
窗体的常用属性 140
7.1.3
窗体的常用事件 142
7.1.4
添加和删除窗体 142
7.2 常用Windows窗体控件 144
7.2.1
控件的分类和作用 144
7.2.2
添加控件 144
7.2.3
排列控件 145
7.2.4
删除控件 146
7.3 文本类控件和消息框 146
7.3.1
标签(Label)控件 146
7.3.2
按钮(Button)控件 147
7.3.3
文本框(TextBox)控件 149
7.3.4
消息框(MessageBox) 151
7.4
Windows应用程序的结构和开发
步骤 154
7.4.1
Windows应用程序的结构 154
7.4.2
Windows应用程序开发步骤 155
7.5 大
神 解 惑 155
7.6 跟我学上机 156
第8章 Windows应用程序开发进阶——
高级窗体控件 157
8.1 菜单与工具栏控件 158
8.1.1
菜单控件 158
8.1.2
工具栏(toolStrip)控件 160
8.2 列表视图和树视图控件 161
8.2.1
列表视图控件(ListView) 161
8.2.2
树视图控件(TreeView) 167
8.3 选项卡控件(TabControl) 172
8.4 通用对话框控件 175
8.4.1
打开文件对话框(OpenFile
Dialog) 175
8.4.2
保存文件对话框(SaveFile
Dialog) 177
8.4.3 选择目录对话框(FolderBrowser
Dialog) 179
8.5 多文档编程(MDI窗体) 181
8.6 大神解惑 184
8.7 跟我学上机 184
第9章 文件操作的利器——C#文件流 185
9.1 文件 186
9.1.1
System.IO命名空间 186
9.1.2
文件类File的使用 188
9.1.3
文件夹Directory类的使用 189
9.1.4
FileInfo类和DirectoryInfo类的
使用 191
9.1.5
文件与文件夹的相关操作 193
9.2 数据流 198
9.2.1
流操作介绍 198
9.2.2
文件流类 199
9.3 文本文件的读写操作 202
9.3.1
StreamReader类 202
9.3.2
StreamWriter类 203
9.4 读写二进制文件 205
9.4.1
BinaryReader类 205
9.4.2
BinaryWriter类 206
9.5 读写内存流 208
9.6 大神解惑 209
9.7 跟我学上机 210
第10章 任务同时进行——多线程
操作 211
10.1
进程 212
10.1.1
进程简介 212
10.1.2
进程的基本操作 212
10.2
线程 213
10.2.1
线程简介 213
10.2.2
单线程与多线程 214
10.2.3
线程的基本操作 215
10.2.4
创建线程 215
10.2.5
线程的控制 216
10.2.6
线程优先级 219
10.3
多线程同步 221
10.3.1
多线程同步概述 221
10.3.2
用Lock语句实现互斥线程 222
10.3.3
用Monitor类实现互斥线程 223
10.3.4
用Mutex类实现互斥线程 224
10.4
线程池 226
10.5
大神解惑 228
10.6
跟我学上机 228
第11章 数据查询新模型——语言集成
查询LINQ 229
11.1
LINQ简介 230
11.1.1
隐式类型化变量(var) 230
11.1.2
查询操作简介 230
11.1.3
数据源 231
11.1.4
查询 231
11.1.5
执行查询 232
11.2
LINQ和泛型类型 233
11.2.1
LINQ查询中的IEnumerable
变量 233
11.2.2
通过编译器处理泛型类型
声明 233
11.3
基本LINQ查询操作 234
11.3.1
获取数据源 234
11.3.2
筛选 234
11.3.3
排序 235
11.3.4
分组 236
11.3.5
联接 238
11.4
大 神 解 惑 241
11.5
跟我学上机 242
第12章 解决问题的法宝
——异常和
调试 243
12.1
异常处理 244
12.1.1
异常处理的概念 244
12.1.2
典型的try…catch异常处理
语句 245
12.1.3
使用finally块 246
12.1.4
使用throw关键字显式抛出
异常 247
12.2
程序调试 249
12.2.1
程序错误分类 249
12.2.2
基本调试概念——断点 250
12.2.3
程序调试信息 252
12.3
大神解惑 255
12.4
跟我学上机 256
第3篇 高级应用
第13章 C#的数据库编程
——ADO.NET
操作数据库 259
13.1
数据库基本知识 260
13.1.1
数据库基本概念 260
13.1.2
数据库系统的特点 260
13.1.3
数据模型简介 261
13.1.4
SQL语言简介 261
13.2
数据库相关操作 262
13.2.1
数据库的创建 262
13.2.2
删除数据库 263
13.2.3
数据表相关操作 264
13.2.4
常用SQL语句的应用 265
13.3
ADO.NET 简介和数据库的
访问 268
13.3.1
ADO.NET特点 268
13.3.2
ADO.NET组件及结构 268
13.3.3
连接数据库 270
13.3.4
执行SQL语句:Command
对象 272
13.3.5
读取数据:DataReader对象 277
13.3.6
数据适配器:DataAdapter
对象 280
13.4
数据集(DataSet对象)简介 286
13.4.1
DataSet对象简介 286
13.4.2
DataSet对象中的常用属性与
方法 287
13.4.3
使用DataSet对象的步骤 287
13.5
使用DataGridView控件显示和操作
数据 288
13.5.1
DataGridView控件列 289
13.5.2
行高与列宽的设置 291
13.5.3
DataGridView选中单元格时的
样式 291
13.5.4
编辑DataGridView与绑定
属性 292
13.5.5
数据集(DataSet)与DataGridView
的结合使用 293
13.6
大神解惑 295
13.7
跟我学上机 298
第14章 图形界面设计——GDI 技术 299
14.1
GDI 介绍 300
14.2
Graphics类 301
14.3
Pen类和Brush类的使用 301
14.3.1
创建Pen类对象 302
14.3.2
Brush类的使用 303
14.4
基本绘图 310
14.4.1
绘制直线和矩形 311
14.4.2
绘制椭圆、圆弧和扇形 314
14.4.3
绘制多边形 319
14.5
使用GDI 绘制柱形图、饼形图、
折线图 320
14.5.1
使用GDI 绘制柱形图 321
14.5.2
使用GDI 绘制饼形图 324
14.5.3
使用GDI 绘制折线图 327
14.6
大神解惑 329
14.7
跟我学上机 330
第15章 融入互联网时代
——开发网络
应用程序 331
15.1
网络编程基础 332
15.1.1
通信协议 332
15.1.2
标识资源 333
15.1.3
套接字编程 333
15.2
网络编程类 334
15.2.1
Dns类 334
15.2.2
IPAddress类 336
15.2.3
IPEndPoint类 338
15.2.4
WebClient类 340
15.3
Socket网络编程相关类 342
15.3.1
Socket类 342
15.3.2
TcpListener类和
TcpClient类 343
15.3.3
UdpClient类 352
15.4
System.Net.Mail简介 356
15.4.1
MailMessage类 356
15.4.2
MailAddress类 357
15.4.3
Attachment类 358
15.4.4
SmtpClient类 360
15.5
大神解惑 362
15.6
跟我学上机 362
第16章 注册表技术——在C#中操作
注册表 363
16.1
注册表简介 364
16.1.1
Registry类 364
16.1.2
RegistryKey类 365
16.2
注册表的相关操作 366
16.2.1
注册表信息的读取 366
16.2.2
注册表信息的创建与修改 368
16.2.3
注册表信息的删除 370
16.3
注册表的应用 373
16.4
大神解惑 375
16.5
跟我学上机 376
第17章 互动式报表——水晶报表 377
17.1
水晶报表插件的下载与安装 378
17.2
水晶报表插件的使用 379
17.3
水晶报表的基本操作 382
17.3.1
报表数据分组 382
17.3.2
报表数据排序 383
17.3.3
报表数据筛选 384
17.3.4
图表的使用 388
17.4
大神解惑 389
17.5
跟我学上机 390
第18章 程序开发收尾工作——应用
程序打包 391
18.1
Visual Studio Installer简介 392
18.2
Visual Studio Installer工具的
下载安装 392
18.3
Visual Studio Installer工具的
使用 394
18.3.1
创建Windows安装项目 394
18.3.2
输出文件的添加 395
18.3.3
内容文件的添加 396
18.3.4
快捷方式的创建 396
18.3.5
注册表项的添加 397
18.3.6
生成Windows安装程序 398
18.4
大神解惑 398
18.5
跟我学上机 398
第4篇 项目开发实战
第19章 经典系统应用
——开发图书
管理系统 401
19.1
需求分析 402
19.2
功能分析 402
19.3
数据库设计 404
19.4
开发前准备工作 405
19.5
系统代码编写 408
19.5.1
图书类(class Book) 408
19.5.2
图书馆类(class Library) 409
19.5.3
借书系统类(class Book
System) 410
19.5.4
Main类(class ManClass) 413
19.6
系统运行 414
19.7
项目总结 414
第20章 流行系统应用——开发社区
互助系统 415
20.1
需求分析 416
20.2
功能分析 416
20.3
数据库设计 418
20.4
开发前准备工作 419
20.5
系统代码编写 422
20.5.1
需求类(class Need) 422
20.5.2
平台类(class Platform) 423
20.5.3
系统类(class Community
Share) 425
20.5.4
Main类(class MainClass) 428
20.6
系统运行 428
20.7
项目总结 430
第21章 娱乐影视应用——开发电影票
预订系统 431
21.1
需求分析 432
21.2
功能分析 432
21.3
数据库设计 433
21.4
开发前准备工作 434
21.5
系统代码编写 437
21.5.1
座位类(class Seat) 437
21.5.2
影厅类(class Hall) 438
21.5.3
电影类(class Movie) 440
21.5.4
订票系统类(class Ticket-
System) 441
21.5.5
Main类(class CinemaTicket) 442
21.6
系统运行 445
21.7
项目总结 446
第22章 企业系统应用——开发人事
管理系统 447
22.1
需求分析 448
22.2
系统功能结构 448
22.2.1
构建开发环境 448
22.2.2
系统功能结构 448
22.3
数据库设计 449
22.3.1
数据库分析 449
22.3.2
数据库实体E-R图 449
22.3.3
数据库表的设计 452
22.4
开发前准备工作 455
22.5
用户登录模块 462
22.5.1
定义数据库连接方法 462
22.5.2
防止窗口被关闭 465
22.5.3
验证用户名和密码 466
22.6
人事档案管理模块 468
22.6.1
界面开发 468
22.6.2
代码开发 468
22.6.3
添加和编辑员工照片 484
22.7
用户设置模块 485
22.7.1
添加、修改用户信息 485
22.7.2
删除用户基本信息 488
22.7.3
设置用户权限 489
22.8
数据库维护模块 490
22.8.1
数据库备份功能 491
22.8.2
数据库还原功能 491
22.9
系统运行 492
22.9.1
登录 492
22.9.2
企业人事管理系统 492
22.9.3
人事档案管理 492
22.9.4
人事资料查询 493
22.9.5
员工信息提醒 493
22.9.6
员工通讯录 494
22.9.7
日常记事 494
22.9.8
用户设置 495
22.9.9
基础信息维护管理 495
22.10
项目总结 496
前 言
“程序开发案例课堂”系列图书是专门为软件开发和数据库初学者量身定做的一套学习用书,整套书涵盖软件开发、数据库设计等方面。整套书具有以下特点。
前沿科技
无论是软件开发还是数据库设计,我们都精选较为前沿或者用户群最大的领域推进,帮助大家认识和了解最新动态。
权威的作者团队
组织国家重点实验室和资深应用专家联手编著该套图书,融合丰富的教学经验与优秀的管理理念。
学习型案例设计
以技术的实际应用过程为主线,全程采用图解和同步多媒体结合的教学方式,生动、直观、全面地剖析使用过程中的各种应用技能,降低难度提升学习效率。
为什么要写这样一本书
微软产品以其简单易用特点取得了大量用户的喜爱,作为NET平台的核心语言,C#是开发中的主力军。目前学习和关注C#的人越来越多,而很多C#的初学者都苦于找不到一本通俗易懂、容易入门和案例实用的参考书。通过本书的案例实训,大学生可以很快地上手流行的工具,提高职业化能力,从而帮助解决公司与学生的双重需求问题。
本书特色
零基础、入门级的讲解
无论您是否从事计算机相关行业,无论您是否接触过C#编程语言,都能从本书中找到最佳起点。
超多、实用、专业的范例和项目
本书在编排上紧密结合深入学习C#编程技术的先后过程,从C#的基本语法开始,带领大家逐步深入地学习各种应用技巧,侧重实战技能,使用简单易懂的实际案例进行分析和操作指导,让读者读起来简明轻松,操作起来有章可循。
随时检测自己的学习成果
每章首页中,均提供了学习目标,以指导读者重点学习及学后检查。
大部分章节最后的“跟我学上机”板块,均根据本章内容精选而成,读者可以随时检测自己的学习成果和实战能力,做到融会贯通。
细致入微、贴心提示
本书在讲解过程中,在各章中使用了“注意”和“提示”等小贴士,使读者在学习过程中更清楚地了解相关操作、理解相关概念,并轻松掌握各种操作技巧。
专业创作团队和技术支持
本书由千谷高新教育中心编著和提供技术支持。
若您在学习过程中遇到任何问题,可加入QQ群(案例课堂VIP)451102631进行提问,专家会在线答疑。
超值赠送资源
全程同步教学录像
涵盖本书所有知识点,详细讲解每个实例及项目的过程及技术关键点。比看书更轻松地掌握书中所有的C#编程语言知识,而且扩展的讲解部分使您得到比书中更多的收获。
超多容量王牌资源大放送
赠送大量王牌资源,包括本书实例源文件、精美教学幻灯片、精选本书教学视频、Visual Studio 2017常用快捷键、C#类库查询手册、C#控件查询手册、C#程序员面试技巧、C#常见面试题、C#常见错误代码及解决方案、C#开发经验及技巧大汇总等。读者可以通过QQ群(案例课堂VIP)451102631获取赠送资源,还可以进入http://www.apecoding.com/下载赠送资源。
读者对象
没有任何C#编程基础的初学者。
有一定的C#编程基础,想精通C#开发的人员。
有一定的C#基础,没有项目经验的人员。
正在进行毕业设计的学生。
大专院校及培训学校的老师和学生。
创作团队
本书由刘春茂和李琪编著,参加编写的人员还有蒲娟、刘玉萍、裴雨龙、展娜娜、周佳、付红、李园、郭广新、侯永岗、王攀登、刘海松、孙若淞、王月娇、包慧利、陈伟光、胡同夫、王伟、梁云梁和周浩浩。在编写过程中,我们竭尽所能地将最好的讲解呈现给读者,但也难免有疏漏和不妥之处,敬请不吝指正。若您在学习中遇到困难或疑问,或有何建议,可写信至信箱[email protected]。
编 者
第2章 零基础开始学习——C#基本语法
通过第一章的讲述,相信读者对C#开发工具以及操作环境已经有所认识。本章讲述C#基本语法。C#的语句主要由数据类型、操作数、运算符和表达式、函数等构成。本章重点讲解如何编写C#程序,以及C#的基本结构和相关语法知识。
本章目标(已掌握的在方框中打钩)
了解C#程序的基本结构。
掌握如何声明和初始化变量和常量。
掌握编写C#程序时需要遵循的书写规则及命名规范。
掌握值类型与引用类型以及它们的区别。
掌握各类型间的数据转换。
掌握运算符的优先级。
2.1
C#的程序结构
C#语言是一种面向对象的语言。C#程序结构大体可以由注释、命名空间、类、Main方法和语句构成。
2.1.1
注释
在C#编程中,所谓注释即为对某行或某段代码的解释说明或忽略代码,它的作用是方便自己阅读与维护或让他人能够更好地理解自己的程序,而编译器在编译程序时不会执行注释过的代码。在C#中,注释分为两种:行注释和块注释。
【例2-1】
在第一章“Hello World!”程序中使用行注释。
static void Main(string[] args) //程序的Main()函数
{
Console.WriteLine(“Hello
World!”); //使用WriteLine()方法编写输出数据
Console.ReadLine(); //使用ReadLine()方法以字符串的形式返回结果
}
【案例剖析】
在本例中,需要注释的行数较少,所以使用的注释方法为行注释,注释的表示形式为“//被注释的内容”。
【例2-2】在“Hello World!”程序中使用块注释。
/*使用程序的Main()函数实现输出“Hello
World!”字符串 //块注释开始
static void Main(string[] args) //程序的Main()函数
{
Console.WriteLine(“Hello
World!”); //使用WriteLine()方法编写输出数据
Console.ReadLine(); //使用ReadLine()方法以字符串的形式返回结果
}
*/ //块注释结束
【案例剖析】
在本例中,需要注释的内容是连续多行的大段,这时使用块注释比较合适。块注释的表示形式为“/* … 被注释的内容 …*/”。
注释可以出现在代码的任何地方,但是不能分割其关键字和标识符。
2.1.2
命名空间
在日常生活中总会遇到这样的问题:计算机一班有个学生叫张三,二班也有个学生叫张三,如何区分这两个同名的学生呢?很简单,因为他们位于不同班级,可以分别称呼他们为“计算机一班的张三”“计算机二班的张三”;对地名的处理也是如此,例如,上海和天津都有贵州路,假设我们在贵州路的时候会告诉家人“我在上海贵州路”或者“我在天津贵州路”。因此,在区分同名事物的时候,总是通过它们归属的不同来进行区分。
应用程序中也是一样的,在处理大型项目时会创建许多类,有时由于这些类的名称会相同而发生冲突。有两个途径可以解决这个问题。一个途径是对这些类重命名,使其名称不再冲突;另一个途径是使用命名空间,命名空间除了可以避免名称冲突外,还有助于组织代码。在代码中使用命名空间能够降低在其他应用程序中重用此代码的复杂性。
命名空间相当于Windows操作系统中的文件夹,文件夹内既可以放置文件也可以是一个文件夹,因此命名空间内既可以是类也可以嵌套另一个命名空间。定义命名空间的格式如下:
namespace 命名控件名称
{
…
}
其中:namespace为定义命名空间的关键字;命名空间名称为用户自定义名称,一般遵循pascal命名规则;…为命名空间包含的内容。
如果要调用某个命名空间中的类或者方法,首先需要使用using指令引入命名空间,其基本格式如下:
using 命名空间名;
命名空间内可以嵌套命名空间,在导入时需要用点将命名空间名隔开,如导入系统的窗体命名空间“using System.Windows.Forms;”。
【例2-3】创建一个控制台应用程序,建立一个命名空间为N1,在该命名空间中有一个类A,在项目中使用using指令引入命名空间N1。然后在命名空间Test中实例化命名空间N1中的类,最后调用该类中的M方法(源代码ch022-3)。
using N1;
//使用using指令引入命名空间N1
namespace N1 //建立命名空间N1
{
class A
//在命名空间N1中声明一个类A
{
public void M()
{
Console.WriteLine(“欢迎来到C#世界”); //输出字符串
Console.ReadLine();
}
}
}
namespace Test
{
class Program
{
static void Main(string[] args)
{
A N2 = new A(); //实例化N1中的类A
N2.M();
//调用类A中的M方法
}
}
}
运行上述程序,结果如图2-1所示。
图2-1 命名空间
【案例剖析】
在程序编写时,分析完例题题目首先要按照顺序编写,不至于程序在编写时出错。在本例中首先编写命名空间N1的类A代码,接着建立命名空间Test,并将N1中的类A实例化,最后调用类A中的M方法。
2.1.3
类
类是一种数据结构,它可以封装数据成员、函数成员和其他的类,是C#程序的核心与基本构成模块。
在使用任何新的类之前都需要对类进行声明。一个类一旦被声明,它就可以被当作一种新的类型来使用。在C#中通过使用class关键字来声明类。它的声明形式如下:
{类修饰符} class
[类名] [基类或接口]
{
{类体}
}
类名是一种标识符,命名时必须符合标识符的命名规则。类名的命名一般要能够体现出类的含义与用途,类名首字母一般采用大写,也可以使用组合词。
【例2-4】声明一个类A,该类没有任何意义,只演示如何来声明一个类。
class A
{
}
2.1.4
Main方法
Main方法是程序的入口点。C#程序中有且仅有一个Main方法,在该方法中可以创建对象和调用其他方法。Main方法必须是静态方法,即用static修饰。C#是一种面向对象的编程语言,即使是程序的启动入口点它也是一类的成员。由于程序启动时还没有创建类的对象,因此,必须将入口点Main定义为静态方法,返回值可以为void或者int。Main方法的一般表示形式如下:
[修饰符] static void/int
Main([string[ ] args])
{
[方法体]
}
评论
还没有评论。