C#应用程序设计教程(第2版)pdf下载

C#应用程序设计教程(第2版)百度网盘pdf下载

作者:
简介:C#应用程序设计教程(第2版)
出版社:
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

内容简介

《C#应用程序设计教程(第2版)》介绍C#客户端应用程序设计技术,内容包括:C#语言基础、wpf和winform应用程序开发、图形和图像编程、文件读/写和管理、多线程应用、socket编程、ado.net数据库应用程序设计等。《C#应用程序设计教程(第2版)》采用实例教学法,在讲清基本知识点的基础上,尽量使用短小精悍的实例加以说明,使内容容易理解。《C#应用程序设计教程(第2版)》使用微软免费的速成版集成开发环境。《C#应用程序设计教程(第2版)》所有例子在.net framework 3.5下调试通过,大部分例子使用wpf控件。
《C#应用程序设计教程(第2版)》可作为高等院校“面向对象windows程序设计”教材,或作为学习使用C#语言开发应用程序的培训班教材,也适合使用C#语言开发项目的程序员参考。

内页插图

目录

第1章 C#语言基础
1.1 C#语言特点
1.2 编写控制台应用程序
1.3 类的基本概念
1.3.1 类的基本概念
1.3.2 类成员的存取控制
1.3.3 类的对象
1.3.4 类的构造函数、构造函数重载和析构函数
1.3.5 使用person类的完整的例子
1.3.6 程序调试与异常处理
1.4 c#的数据类型
1.4.1 值类型和引用类型的区别
1.4.2 值类型变量分类
1.4.3 结构类型
1.4.4 简单类型
1.4.5 枚举类型
1.4.6 值类型的初值和默认构造函数
1.4.7 可空类型
1.4.8 引用类型分类
1.4.9 object类
1.4.10 数组类
1.4.11 字符串类(string类)
1.4.12 类型转换
1.4.13 泛型和泛型集合
1.4.14 隐式类型局部变量(var)
1.5 运算符
1.5.1 运算符分类
1.5.2 溢出检查操作符checked和unchecked
1.5.3 new运算符
1.6 程序控制语句
1.6.1 c#语言语句和c语言语句的不同点
1.6.2 foreach语句
1.6.3 异常语句
1.6.4 using语句
1.7 类的继承
1.7.1 派生类的声明格式
1.7.2 隐藏基类方法
1.7.3 base关键字
1.7.4 c#语言类继承特点
1.8 类的成员
1.8.1 类的成员类型
1.8.2 类成员访问修饰符
1.9 类的字段和属性
1.9.1 静态字段、实例字段、常量和只读字段
1.9.2 属性
1.9.3 对象初始化器
1.9.4 自动属性
1.9.5 匿名类型
1.10 类的方法
1.10.1 方法的声明
1.10.2 方法中参数的传递
1.10.3 静态方法和实例方法
1.10.4 方法的重载
1.10.5 操作符重载
1.10.6 this关键字
1.10.7 扩展方法
1.11 类的多态性
1.12 抽象类和抽象方法
1.13 密封类和密封方法
1.14 静态类和静态类成员
1.15 c# 2.0中的分部类
1.16 使自定义类支持foreach语句
1.17 接口
1.17.1 接口声明
1.17.2 接口的继承
1.17.3 类对接口的实现
1.18 委托类型
1.19 事件
1.19.1 事件驱动
1.19.2 事件的声明
1.19.3 事件的预订和撤销
1.19.4 匿名方法
1.19.5 lambda表达式
1.20 索引指示器
1.21 命名空间
1.21.1 命名空间的声明
1.21.2 命名空间使用
1.22 linq
习题

第2章 wpf编程基础
2.1 windows编程接口和类库
2.2 gdi和wpf
2.3 textblock、label和button控件
2.4 wpf控件通用属性
2.5 wpf程序基本结构
2.6 application类和window类
2.7 用vs2008创建wpf程序
2.8 控件的z-序
2.9 xaml标记和类型转换器
2.10 代码隐藏
2.11 解决方案和项目
2.12 事件处理函数的参数
2.13 textbox和passwordbox控件
2.14 radiobutton、groupbox和expander
2.15 checkbox(复选框)控件
2.16 定时器和datetime类
2.17 listbox(列表框)控件
2.18 路由事件
2.19 combobox(下拉列表组合框)控件
2.20 布局面板和scrollviewer
2.21 附加属性
2.22 样式、样式触发器和资源
2.23 模板和模板触发器
2.24 依赖属性和控件树
2.25 数据绑定和标记扩展
2.26 listview等列表控件数据绑定
2.27 绑定数据源为自定义类
2.28 利用异常对输入数据验证
2.29 自定义验证规则
2.30 正则表达式类regex类
2.31 菜单、command和键盘事件
2.32 快捷菜单
2.33 togglebutton和repeatbutton
2.34 工具条
2.35 状态栏控件和鼠标事件
2.36 各种wpf应用程序
2.37 综合例子:计算器
2.38 类库和自定义控件
习题

第3章 wpf文本编辑器
3.1 文档布局
3.2 richtextbox控件
3.3 command实现编辑功能
3.4 存取文件
3.4.1 openfiledialog和savefiledialog类
3.4.2 存取文件功能实现
3.5 about对话框
3.6 文本编辑器查找替换功能
3.6.1 模式对话框和非模式对话框
3.6.2 查找替换功能的实现
3.7 提示用户保存已被修改的文件
3.7.1 messagebox类
3.7.2 提示保存已被修改的文件
3.8 打印和打印预览
3.8.1 打印对话框printdialog
3.8.2 打印
3.8.3 打印预览
3.9 多选项卡页的文本编辑器
习题

第4章 文件和流
4.1 用流读/写文件
4.1.1 filestream类读/写字节
4.1.2 binaryreader、binarywriter类读/写基本数据类型
4.1.3 streamreader和streamwriter类读/写字符串
4.1.4 序列化
4.1.5 stream类的其他派生类
4.2 file类和fileinfo类
4.2.1 file类常用的方法
4.2.2 判断文件是否存在
4.2.3 删除文件
4.2.4 复制文件
4.2.5 移动文件
4.2.6 设置文件属性
4.2.7 得到文件的属性
4.3 directory类和directoryinfo类
4.3.1 directory类常用的方法
4.3.2 判断目录是否存在
4.3.3 创建目录
4.3.4 删除目录
4.3.5 移动目录
4.3.6 获取当前目录下的所有子目录
4.3.7 获取当前目录下的所有文件
4.3.8 设置目录属性
4.4 例子:在指定文件夹中查找文件
4.5 例子:鼠标拖放打开文件
4.6 例子:拆分和合并文件
习题

第5章 wpf图形图像编程
5.1 wpf和gdi
5.2 常用的结构
5.2.1 point和size结构
5.2.2 rect结构
5.2.3 color结构
5.3 用shape的派生类绘图
5.3.1 公用属性
5.3.2 画线控件line
5.3.3 画矩形控件rectangle
5.3.4 画圆或椭圆控件ellipse
5.3.5 控件polyline和polygon
5.3.6 控件path
5.4 用drawing的派生类绘图
5.4.1 绘图基本方法
5.4.2 geometry类
5.4.3 geometrygroup类
5.4.4 combinedgeometry类
5.5 用visual类的派生类绘图
5.5.1 绘图基本方法
5.5.2 drawingcontext类方法
5.6 pen类和brush类
5.6.1 pen类
5.6.2 solidcolorbrush画刷
5.6.3 lineargradientbrush画刷
5.6.4 radialgradientbrush画刷
5.6.5 imagebrush画刷
5.6.6 tilebrush类
5.6.7 drawingbrush画刷
5.6.8 visualbrush画刷
5.7 图形变换
5.7.1 transform派生类
5.7.2 transformgroup类
5.7.3 matrix结构
5.7.4 matrixtransform类
5.7.5 控件的变换
5.7.6 drawing类图形变换
5.7.7 visual类图形变换
5.8 位图效果
5.9 处理图像
5.9.1 显示图像文件
5.9.2 将矢量图形保存为位图文件
5.9.3 彩色图像变换为灰度图像
5.9.4 处理图像每一点颜色
5.10 图像剪贴板功能
5.10.1 剪切复制区域选定
5.10.2 剪贴板复制功能的实现
5.10.3 剪贴板剪切功能的实现
5.10.4 剪贴板粘贴功能的实现
5.11 3d图形
5.11.1 3d图形学基础
5.11.2 绘制3d图形例子
5.11.3 分析例子xaml标记
5.11.4 照相机和投影
5.11.5 定义3d模型形状
5.11.6 背面剔除
5.11.7 光源
5.11.8 材质
5.11.9 纹理
5.11.10 3d图形变换
5.11.11 代码绘制3d图形
5.12 directx 3d和xna介绍
习题

第6章 多媒体
6.1 wpf动画
6.1.1 传统实现动画方法
6.1.2 doubleanimation类动画
6.1.3 其他动画类
6.1.4 关键帧动画
6.1.5 基于路径的动画
6.2 音频支持
6.2.1 soundplayer类
6.2.2 soundplayeraction类
6.2.3 mediaplayer类
6.2.4 mediaelement类
6.2.5 mediatimeline类
6.3 视频支持
6.3.1 mediaelement类
6.3.2 mediatimeline类
6.3.3 mediaplayer类
6.4 语音功能介绍
习题

第7章 进程和多线程
7.1 进程
7.1.1 process类
7.1.2 用代码启动和停止进程
7.1.3 得到进程信息
7.2 创建线程
7.2.1 线程类(thread)的属性和方法
7.2.2 用thread类创建线程
7.2.3 用dispatcher类访问控件
7.2.4 委托异步调用方法
7.2.5 异步文件读/写
7.2.6 单线程完成费时工作
7.2.7 backgroundworker类
7.3 线程并发、互斥和死锁
7.3.1 多个线程同时修改共享数据可能发生错误
7.3.2 用lock语句实现互斥
7.3.3 用mutex类实现互斥
7.3.4 用monitor类实现互斥
7.4 同步生产者和消费者线程
7.4.1 生产者线程和消费者线程不同步可能发生错误
7.4.2 生产者线程和消费者线程同步的实现
习题

第8章 socket编程初步
8.1 tcp/ip和socket
8.1.1 tcp/ip
8.1.2 套接字
8.2 基于tcp的socket编程
8.2.1 tcpclient类
8.2.2 tcplistener类
8.2.3 服务器程序
8.2.4 客户机程序
8.2.5 tcp的socket实例
8.2.6 异步tcp编程
8.2.7 基于tcp的p2p技术
8.3 基于udp的socket编程
8.3.1 基于udp的编程
8.3.2 用udp实现广播和组播
习题

第9章 数据库应用程序设计
9.1 两类数据库应用程序
9.2 vs2008创建数据库
9.3 结构化查询语言sql
9.4 连接数据库
9.5 创建连接数据库应用程序
9.5.1 oledbcommand和sqlcommand类
9.5.2 oledbdatareader和sqldatareader类
9.6 不连接数据库应用程序及数据绑定
9.6.1 sqldataadapter和dataset类
9.6.2 datatable、dataview和datarow类
9.6.3 数据库表的数据绑定
9.7 学生信息管理系统设计
9.7.1 学生查询窗口
9.7.2 项目数据源
9.7.3 学生登录功能
9.7.4 管理员管理窗口
9.7.5 主从关系
9.7.6 编辑、删除和增加记录功能
9.7.7 将修改数据存回原数据库
9.7.8 查询
9.7.9 教师登分窗口
9.8 combobox绑定到数据库表
9.9 存储过程
9.10 linq to ado.net
9.10.1 linq to dataset
9.10.2 linq to sql
习题

第10章 可扩展标记语言
10.1 xml基本概念
10.1.1 sgml
10.1.2 xml
10.1.3 xml的文档格式
10.1.4 xpath表示xml文档路径
10.2 xml文档显示
10.2.1 定义xml文档显示格式
10.2.2 xml文件转换为html文件
10.2.3 treeview控件和xml数据绑定
10.3 查询xml文档
10.3.1 xmltextreader类查询xml
10.3.2 xmldocument类查询xml
10.3.3 xpathnavigator类查询xml
10.3.4 xdocument和linq to xml
10.4 编辑xml文档
10.4.1 xmltextwriter类写xml文档
10.4.2 xmldocument类编辑xml文档
10.4.3 xdocument编辑xml文档
10.5 xml架构
10.5.1 dtd或xml schema定义xml架构
10.5.2 用xml schema验证xml架构
10.6 数据库和xml
习题

第11章 web服务和wcf基础
11.1 web服务和wcf的概念
11.1.1 web服务的概念和用途
11.1.2 web服务的局限
11.1.3 wcf技术
11.1.4 wcf基本结构
11.2 和web服务兼容的wcf服务
11.2.1 建立web服务
11.2.2 wsdl
11.2.3 配置文件web.config
11.2.4 建立客户端程序
11.3 其他宿主的wcf服务
11.3.1 建立wcf服务
11.3.2 建立客户端程序
11.3.3 双工协定
11.4 使用web服务的例子
11.4.1 使用wcf服务返回数据库表
11.4.2 用web服务传送图形文件
习题

第12章 windows form编程
12.1 winform和wpf的不同点
12.2 winform控件编程基础
12.2.1 最简单的winform程序
12.2.2 用vs2008创建winform程序
12.2.3 winform和wpf常用控件异同
12.2.4 菜单控件menustrip
12.2.5 工具条控件toolstrip
12.2.6 状态栏控件statusstrip
12.3 文本编辑器
12.3.1 richtextbox控件
12.3.2 多文档文本编辑器
12.4 gdi图形图像编程
12.4.1 画笔pen类和画刷类
12.4.2 使用graphics类
12.4.3 窗体的paint事件
12.4.4 bitmap类和picturebox控件
12.5 数据库
12.5.1 bindingsource组件
12.5.2 bindingnavigator控件 309
12.5.3 学生信息管理系统设计
习题
参考文献

精彩书摘

(1)通用语言规范(Common Language Specification,CLS)。.NET系统包括C#、C++、VB、J#,它们都遵守通用语言规范。任何程序设计语言只要遵守通用语言规范,其源程序都可编译为相同的中间语言代码,由CLR负责执行,这样的代码叫托管代码。只要为其他操作系统编制相应的CLR,中间语言代码也可在其他系统中运行。
(2)自动内存管理。CLR内建垃圾收集器,当堆中实例的生命周期结束时,垃圾收集器负责收回不被使用的实例占用的内存空间。也就是说,CLR具有自动内存管理功能。而c和c++语言,用语句在堆中建立的实例,必须用语句释放实例占用的内存空间。
(3)交叉语言处理。由于任何遵守通用语言规范的程序设计语言源程序,都可编译为相同的中间语言代码,不同语言设计的组件可以互相通用,可以从其他语言定义的类派生出本语言的新类。由于中间语言代码由CLR负责执行,因此异常处理方法是一致的,这在调试一种语言调用另一种语言的子程序时,显得特别方便。

前言/序言

  计算机专业开设的第一门高级程序设计语言课程一般是C或C++,学习高级程序设计语言基本知识,编写控制台或DOS应用程序。在此之后应进一步学习面向对象Windows应用程序设计,一方面为操作系统、数据库、计算机网络、计算机图形学等后续课程提供程序设计基础,另一方面也尽早为学生课外实践提供一个实用工具。本课程是为上述目的而设置的,是计算机导论和C或C++课程的后续课程。单纯讲授面向对象理论的效果并不好,结合某个面向对象语言的方法会有更好的教学效果。本书用c#语言介绍面向对象程序设计概念。
  学习面向对象Windows应用程序设计应采用广泛使用又适合教学的工具和语言。考虑到Visual C++学习难度较大,Visual Basic(以下简称VB)虽然易学,但还要耗费很紧张的学时学习一门新语言,是得不偿失的。而c撑语言是为.NET架框量身定做的新一代面向对象的语言,语法和C++非常相似,但比C++简单,使用组件编程,和VB一样容易使用。在第一门高级程序设计语言课程是C或C++的情况下,学习c#语言可节约很多学时,对于根本没有接触过VB的大学生,把c#作为学习面向对象Windows应用程序设计语言是合适的。当前用C#语言开发.NET系统的商用软件较多,这也为学生毕业后工作打下较好基础。