微信扫一扫,移动浏览光盘
简介
本书共分为两个部分,第一部分着重介绍C#的基本语法;第二部分则强调实务的应用,并采用Hands-On Lab的方式,引导读者一步步创建C#各类的应用程序,如Windos Forms、ASP.NET网页、数据库访问程序、Web Service等。
1. 拥有优美、简洁的语法,又不失容易使用、易开
发的特性。
2. 从.net Framework的设计理念与C#的基本结构开始,以实际操作的方式引导 开发者编写完整的应
用程序。
3. 强调培养实务开发的真功力,并采Hands-On Lab的方式引导开发者使用Visual Studio.net 。
4. 按步就班地建立C#各类型的项目,如:数据库应用程序、Windows Forms应用 程序 、ASP.NET网页、数据库存取程序等。
5. 帮助专业程员以 C#来开发Internet应用程序,使其快速地踏入全新的.NET开发 领域。 6.适合程序开发人员。
目录
第1篇 基础语法篇
第1章 .net概述
1—1 软件开发架构的演进
1—1—1 桌面型单机(1-tier)应用程序
1—1—2 主从架构(c1ient/server,2-tier)应用程序
1—l—3 分布式(n—tier)应用程序架构
1—1—4 windows dna
1—1—5 w1ndows dna 2000
1—2 microsoft.net——下一代的因特网平台
1—2—1 .net framework
1—2—2 通用语言运行环境
1—2—3 类库
1—2—4 .net程序语言
第2章 c#概论
2—1 c59应用程序的结构
2—1—1 分析c#应用程序结构
2—1—2 using前缀指令与system命名空间
2—2 标淮的输入/输出
2—2—1 输出字符串到console
2—2—2 格式化输出字符串
.2—2—3 读取数据
2—3 代码注释
2—4 编译c#应用程序
总结
第3章值类型变量
3—1 通用类型系统(common type system)
3—2 值类型与引用类型
3—3 查找基类
3—4 值类型
3—4—1 简单类型
3—4—2命名原则
3—4—3 声明变量
3—4—4 赋值变量
3—5 常用的运算符
3—6 运算符优先级
3—7 使用枚举类型
3—7—1 enum类型常用的方法
3—7—2 使用enum类型常犯的错误
3—8 使用sbuct类型
3—9 数据类型转换
3—9—1 隐含式转换
3—9—2 明确式转换
总结
第4章 语句与异常处理
4—1 程序块
4—2 语句类型
4—2—1 if语句
4—2—2 嵌套if(cascading if)
4—2—3 switch语句
4—2—4 在switch中使用goto
4—3 重复执行的语句
4—3—1 while语句
4—3—2 do语句
4—3—3 for语句
4—3—4 foreach语句
4—4 跳转语句
4—4—1 goto语句
4—4—2 break与continue语句
4—5 异常错误
4—5—1 产生异常错误
4—5—2 检查数值溢出
总结
第5章 方法与参数
5—1 定义方法
5—2 调用其他类的方法
5—3 声明局部变量
5—4 共享变量
5—5 使用返回值
5—6 声明与使用参数
5—7 参数传递机制
5—7—1 使用值参数
5—7—2 使用输出参数
5—7—3 使用引用参数
5—8 使用引用参数常见的错误
5—9 声明不定长度的参数
5—10 参数传递的准则
5—11 使用递归方法
5—12 重载方法
总结
第6章 数组
6—1 什么是数组
6—2 声明数组
6—3 数组维度
6—4 访问数组元素
6—5 使用length属性检查数组上下限
6—6 数组与集合的比较
6—7 声明时初始化数组
6—7—1 使用简短的表示法
6—7—2 初始化多维的数组
6—8 运行时指定数组的大小
6—9 不规则数组(jagged array)
6—10 复制数组变量
6—11 数组的应用
6—11—l 数组常用的属性
6—11—2 数组常用的方法
6—11—3 由方法返回一个数组
6—11—4 把数组当参数传递
6—12 命令行参数
总结
第7章 面向对象程序设计
7—1 面向对象的缘由
7—2 类(class)
7—3 命名空间
7—4 降低维护的负担
7—5 数据封装(encapsulation)
7—6 继承(inheritance)
7—7 多态性(polymorphism)
7—8 抽象化(abstraction)
总结
第8章 类、命名空间
8—1 类与对象
8—1—1 类的成员
8—1—2 对象
8—1—3 定义类的语法
8—2 类与结构的比较
8—3 数据封装
8—4 数据与方法的访问控制
8—4—1 使用成员访问修饰符
8—4—2 良好的数据隐藏方式设计
8—4—3 数据封装的目的
8—5 使用静态成员
8—5—1 声明及初始化静态数据
8—5—2 使用静态方法
8—5—3 静态成员使用准则
8—6 c#与面向对象
8—6—1 再探hello world
8—6—2 以stahc定义main
8—7 定义类与创建实体
8—8 使用访问修饰符
8—9 创建嵌套类
8—10 命名空间
8—10—1 声明命名空间
8—10—2 命名空间的作用域(scope)
8—10—3 使用命名空间的好处
8—10—4 命名空间访问控制
8—11 完全限定名
8—12 使用using前缀指令
8—13 使用别名(a1ias)
8—14 使用命名空间的准则
总结
第9章 引用类型变量
9—1 使用引用类型变量
9—2 引用类型与值类型
9—2—1 值类型
9—2—2 引用类型
9—2—3 值类型与引用类型的差异
9—3 声明与释放引用类型变量
9—3—1 声明引用类型变量
9—3—2 释放引用类型变量
9—4 比较引用类型变量与值类型变量.
9—5 多个引用类型变量引用到同一个对象
9—6 以引用变量当作方法的参数
9—7 常用的引用类型
9—7—1 exception类
9—7—2 string类
9—7—3 比较字符串的方法与运算符
9—7—4 c39对象层次结构
9—8 .net framework常用的类
9—8—1 svstem.ic
9—8—2 svstem.xml
9—9 数据类型转换
9—9—1 隐式转换(implicit conversions)
9—9—2 显式转换(explicit conversions)
9—10 parent与child之间的转换
9—10—1 转换成parent class的引用
9—10—2 转换成child class的引用
9—11 使用is运算符
9—12 使用as运算符
9—13 object类型转换守则
9—14 boxing与unboxing
9—14—1 boxing
9—14—2 unboxing
总结
第10章 对象的生存期
10—1 了解构造函数
10—1—1 使用new获取内存
10—1—2 托管堆(managed heap)的内存分配
10—1—3 初始化对象
10—2 默认构造函数
10—2—1 默认构造函数的特性
10—2—2 编译器自动产生的构造函数
10—2—3 定义默认构造函数
10—2—4 定义构造函数原则
10—3 重载构造函数
10—4 重载构造函数潜在的问题
10—4—1 解决重复初始化代码的问题
10—4—2 使用constructor—initializer
10—5 初始化只读数据
10—6 在构造函数中使用out与ref
10—7 struct构造函数
10—8 static构造函数
10—8—1 使用sta比构造函数初始化静态成员
10—8—2 st此c构造函数的限制
10—9 对象与内存
10—9—1 对象的生命周期
10—9—2 局部变量的生命周期
10—10 谁来“摧毁”对象
10—11 使用finalize方法
10—12 编写析构函数
10—13 实现idlsposable接口
总结
第11章 继承、多态性与接口
11—1 派生基类的功能
11—l—1 继承的语法
11—1—2 简单的uml描述
11—2 派生类的继承
11—2—1 使用访问修饰符控制访问权限
11—2—2 protected成员的继承
11—3 调用基类的构造函数
11—4 覆盖基类的方法
11—4—1 定义虚拟方法
11—4—1 虚拟方法与覆盖方法的守则
11—5 隐藏基类方法
11—6 使用sealed类与sealed方法
11—7 版本控制
11—8 使用接口
11—9 以明确的方式实现接口
11—10 抽象类
11—10—1 抽象方法
11—10—2 不实现接口的抽象类
11—11 抽象类与接口
11—12 抽象方法与版本控制
总结
第12章 属性与索引器
12—1 组件定义
12—2 属性
12—2—1 为什么要用属性
12—2—2 使用属性的好处
12—3 属性的种类
12—4 使用访问器
12—4—1 使用get访问器
12—4—2 使用set访问器
12—4—3 使用get、set访问器
12—5 编译器运行的情形
12—6 属性与类数据成员的比较
12—6—1 属性是逻辑上的类数据成员
12—6—2 属性和数据成员的相似性
12—6—3 属性和数据成员的不同点
12—7 访问属性与类数据成员的比较
12—8 属性与方法的比较
12—8—1 属性和方法之间的相似性.
12—8—2 属性和方法之间的不同点
12—9 索引器(indexer)的使用
12—9—1 为什么要使用索引
12—9—2 定义索引器
12—10 索引器和数组的比较
12—11 重载索引器(indexer overloading)
12—12 索引器与属性的比较
12—12—1 索引器与属性的相似性
12—12—2 索引器与属性的不同点
12—13 索引器设计准则
总结
第13章 运算符、delegate与事件
13—1 重载运算符
13—1—1 重载运算符的语法
13—1—2 重载相同的运算符多次
13—1—3 转换运算符
13—2 创建并使用委托类型
13—3 事件
13—3—1 在事件发行者中定义一个事件
13—3—2 在事件发行者中触发事件
13—3—3 在事件订阅者中定义事件处理程序
13—3—4 向事件发行者订阅一个事件
13—4 连接、删除事件设计准则
13—5 .net framework事件设计准则
13—6 传递事件的参数
13—6—1 sender对象与事件参数
13—6—2 定义delegate函数模板
13—6l3 eventargs类的设计
13—6—4 事件处理程序的编写
13—6—5 触发事件
总结
第14章 attribute与reflection
14—1 什么是attribute
14—2 使用attribute
14—3 自定义attribute类
14—3—1 attribute适用的元素
14—3—2 设计attribute类
14—3—3 使用atbibute
14—3—4 获取attribute的值
14—4 reflection
14—4—1 reflection设计理念
14—4—2 中继数据(metadata)
总结
第2篇 实战演练篇
第15章 编写数据库应用程序
练习一:创建用户界面
练习二:编写公用函数
练习三:读取数据库数据,创建dataset
练习四: 自定义datagrid显示样式
练习五:插入、删除、修改数据
练习六:增加核对程序运行的代码
第16章 编写master/detail数据库应用程序
练习一:创建master/detail关系的dataset
练习二:自定义dahgrid显示样式
练习三:设计显示明细数据的窗体
练习四:使用bindingcontext浏览数据
第17章 设计windows prom应用程序
实例一:设计mdi应用程序
练习一:使用stansbar与timer控件
练习二:设计菜单
练习三:编写菜单代码
实例二:设计gdi+应用程序
练习一:绘制统计图表
练习二:使用fontdialog设置字体
练习三:设置打印格式
练习四:打印预览与打印报表
练习五:使用prlntdialog选择打印机
练习六:保存图形文件
第18章 使用com+服务
练习一:编写net组件
练习二:编写转帐类
练习三:创建keyfile与strong name
练习四:创建客户端的接口
练习五:测试com十应用程序
第19章 编写一个监控文件变动的windows service
练习一:使用windows service模板
练习二:使用eventlog与filesystem watcher控件
练习三:使用installer类
练习四:安装windows service
练习五:启动服务与暂停服务
第20章 编写资源管理器
练习一:创建ucom file manager用户界面
练习二:编写初始化应用程序的代码
练习三:编写事件过程
练习四:打开文本文件
第21章 编写提供数据的web service
练习一:创建web service
练习二:编写使用web service的windows forms客户端
第22章 编写asp.net网页
练习一:创建asp.net项目
练习二:设计分页
练习三:增加编辑数据的按钮
练习四:编写修改、取消、保存按钮事件处理过程
练习五:编写添加功能
练习六:编写删除功能
附录
英中文对照表
第1章 .net概述
1—1 软件开发架构的演进
1—1—1 桌面型单机(1-tier)应用程序
1—1—2 主从架构(c1ient/server,2-tier)应用程序
1—l—3 分布式(n—tier)应用程序架构
1—1—4 windows dna
1—1—5 w1ndows dna 2000
1—2 microsoft.net——下一代的因特网平台
1—2—1 .net framework
1—2—2 通用语言运行环境
1—2—3 类库
1—2—4 .net程序语言
第2章 c#概论
2—1 c59应用程序的结构
2—1—1 分析c#应用程序结构
2—1—2 using前缀指令与system命名空间
2—2 标淮的输入/输出
2—2—1 输出字符串到console
2—2—2 格式化输出字符串
.2—2—3 读取数据
2—3 代码注释
2—4 编译c#应用程序
总结
第3章值类型变量
3—1 通用类型系统(common type system)
3—2 值类型与引用类型
3—3 查找基类
3—4 值类型
3—4—1 简单类型
3—4—2命名原则
3—4—3 声明变量
3—4—4 赋值变量
3—5 常用的运算符
3—6 运算符优先级
3—7 使用枚举类型
3—7—1 enum类型常用的方法
3—7—2 使用enum类型常犯的错误
3—8 使用sbuct类型
3—9 数据类型转换
3—9—1 隐含式转换
3—9—2 明确式转换
总结
第4章 语句与异常处理
4—1 程序块
4—2 语句类型
4—2—1 if语句
4—2—2 嵌套if(cascading if)
4—2—3 switch语句
4—2—4 在switch中使用goto
4—3 重复执行的语句
4—3—1 while语句
4—3—2 do语句
4—3—3 for语句
4—3—4 foreach语句
4—4 跳转语句
4—4—1 goto语句
4—4—2 break与continue语句
4—5 异常错误
4—5—1 产生异常错误
4—5—2 检查数值溢出
总结
第5章 方法与参数
5—1 定义方法
5—2 调用其他类的方法
5—3 声明局部变量
5—4 共享变量
5—5 使用返回值
5—6 声明与使用参数
5—7 参数传递机制
5—7—1 使用值参数
5—7—2 使用输出参数
5—7—3 使用引用参数
5—8 使用引用参数常见的错误
5—9 声明不定长度的参数
5—10 参数传递的准则
5—11 使用递归方法
5—12 重载方法
总结
第6章 数组
6—1 什么是数组
6—2 声明数组
6—3 数组维度
6—4 访问数组元素
6—5 使用length属性检查数组上下限
6—6 数组与集合的比较
6—7 声明时初始化数组
6—7—1 使用简短的表示法
6—7—2 初始化多维的数组
6—8 运行时指定数组的大小
6—9 不规则数组(jagged array)
6—10 复制数组变量
6—11 数组的应用
6—11—l 数组常用的属性
6—11—2 数组常用的方法
6—11—3 由方法返回一个数组
6—11—4 把数组当参数传递
6—12 命令行参数
总结
第7章 面向对象程序设计
7—1 面向对象的缘由
7—2 类(class)
7—3 命名空间
7—4 降低维护的负担
7—5 数据封装(encapsulation)
7—6 继承(inheritance)
7—7 多态性(polymorphism)
7—8 抽象化(abstraction)
总结
第8章 类、命名空间
8—1 类与对象
8—1—1 类的成员
8—1—2 对象
8—1—3 定义类的语法
8—2 类与结构的比较
8—3 数据封装
8—4 数据与方法的访问控制
8—4—1 使用成员访问修饰符
8—4—2 良好的数据隐藏方式设计
8—4—3 数据封装的目的
8—5 使用静态成员
8—5—1 声明及初始化静态数据
8—5—2 使用静态方法
8—5—3 静态成员使用准则
8—6 c#与面向对象
8—6—1 再探hello world
8—6—2 以stahc定义main
8—7 定义类与创建实体
8—8 使用访问修饰符
8—9 创建嵌套类
8—10 命名空间
8—10—1 声明命名空间
8—10—2 命名空间的作用域(scope)
8—10—3 使用命名空间的好处
8—10—4 命名空间访问控制
8—11 完全限定名
8—12 使用using前缀指令
8—13 使用别名(a1ias)
8—14 使用命名空间的准则
总结
第9章 引用类型变量
9—1 使用引用类型变量
9—2 引用类型与值类型
9—2—1 值类型
9—2—2 引用类型
9—2—3 值类型与引用类型的差异
9—3 声明与释放引用类型变量
9—3—1 声明引用类型变量
9—3—2 释放引用类型变量
9—4 比较引用类型变量与值类型变量.
9—5 多个引用类型变量引用到同一个对象
9—6 以引用变量当作方法的参数
9—7 常用的引用类型
9—7—1 exception类
9—7—2 string类
9—7—3 比较字符串的方法与运算符
9—7—4 c39对象层次结构
9—8 .net framework常用的类
9—8—1 svstem.ic
9—8—2 svstem.xml
9—9 数据类型转换
9—9—1 隐式转换(implicit conversions)
9—9—2 显式转换(explicit conversions)
9—10 parent与child之间的转换
9—10—1 转换成parent class的引用
9—10—2 转换成child class的引用
9—11 使用is运算符
9—12 使用as运算符
9—13 object类型转换守则
9—14 boxing与unboxing
9—14—1 boxing
9—14—2 unboxing
总结
第10章 对象的生存期
10—1 了解构造函数
10—1—1 使用new获取内存
10—1—2 托管堆(managed heap)的内存分配
10—1—3 初始化对象
10—2 默认构造函数
10—2—1 默认构造函数的特性
10—2—2 编译器自动产生的构造函数
10—2—3 定义默认构造函数
10—2—4 定义构造函数原则
10—3 重载构造函数
10—4 重载构造函数潜在的问题
10—4—1 解决重复初始化代码的问题
10—4—2 使用constructor—initializer
10—5 初始化只读数据
10—6 在构造函数中使用out与ref
10—7 struct构造函数
10—8 static构造函数
10—8—1 使用sta比构造函数初始化静态成员
10—8—2 st此c构造函数的限制
10—9 对象与内存
10—9—1 对象的生命周期
10—9—2 局部变量的生命周期
10—10 谁来“摧毁”对象
10—11 使用finalize方法
10—12 编写析构函数
10—13 实现idlsposable接口
总结
第11章 继承、多态性与接口
11—1 派生基类的功能
11—l—1 继承的语法
11—1—2 简单的uml描述
11—2 派生类的继承
11—2—1 使用访问修饰符控制访问权限
11—2—2 protected成员的继承
11—3 调用基类的构造函数
11—4 覆盖基类的方法
11—4—1 定义虚拟方法
11—4—1 虚拟方法与覆盖方法的守则
11—5 隐藏基类方法
11—6 使用sealed类与sealed方法
11—7 版本控制
11—8 使用接口
11—9 以明确的方式实现接口
11—10 抽象类
11—10—1 抽象方法
11—10—2 不实现接口的抽象类
11—11 抽象类与接口
11—12 抽象方法与版本控制
总结
第12章 属性与索引器
12—1 组件定义
12—2 属性
12—2—1 为什么要用属性
12—2—2 使用属性的好处
12—3 属性的种类
12—4 使用访问器
12—4—1 使用get访问器
12—4—2 使用set访问器
12—4—3 使用get、set访问器
12—5 编译器运行的情形
12—6 属性与类数据成员的比较
12—6—1 属性是逻辑上的类数据成员
12—6—2 属性和数据成员的相似性
12—6—3 属性和数据成员的不同点
12—7 访问属性与类数据成员的比较
12—8 属性与方法的比较
12—8—1 属性和方法之间的相似性.
12—8—2 属性和方法之间的不同点
12—9 索引器(indexer)的使用
12—9—1 为什么要使用索引
12—9—2 定义索引器
12—10 索引器和数组的比较
12—11 重载索引器(indexer overloading)
12—12 索引器与属性的比较
12—12—1 索引器与属性的相似性
12—12—2 索引器与属性的不同点
12—13 索引器设计准则
总结
第13章 运算符、delegate与事件
13—1 重载运算符
13—1—1 重载运算符的语法
13—1—2 重载相同的运算符多次
13—1—3 转换运算符
13—2 创建并使用委托类型
13—3 事件
13—3—1 在事件发行者中定义一个事件
13—3—2 在事件发行者中触发事件
13—3—3 在事件订阅者中定义事件处理程序
13—3—4 向事件发行者订阅一个事件
13—4 连接、删除事件设计准则
13—5 .net framework事件设计准则
13—6 传递事件的参数
13—6—1 sender对象与事件参数
13—6—2 定义delegate函数模板
13—6l3 eventargs类的设计
13—6—4 事件处理程序的编写
13—6—5 触发事件
总结
第14章 attribute与reflection
14—1 什么是attribute
14—2 使用attribute
14—3 自定义attribute类
14—3—1 attribute适用的元素
14—3—2 设计attribute类
14—3—3 使用atbibute
14—3—4 获取attribute的值
14—4 reflection
14—4—1 reflection设计理念
14—4—2 中继数据(metadata)
总结
第2篇 实战演练篇
第15章 编写数据库应用程序
练习一:创建用户界面
练习二:编写公用函数
练习三:读取数据库数据,创建dataset
练习四: 自定义datagrid显示样式
练习五:插入、删除、修改数据
练习六:增加核对程序运行的代码
第16章 编写master/detail数据库应用程序
练习一:创建master/detail关系的dataset
练习二:自定义dahgrid显示样式
练习三:设计显示明细数据的窗体
练习四:使用bindingcontext浏览数据
第17章 设计windows prom应用程序
实例一:设计mdi应用程序
练习一:使用stansbar与timer控件
练习二:设计菜单
练习三:编写菜单代码
实例二:设计gdi+应用程序
练习一:绘制统计图表
练习二:使用fontdialog设置字体
练习三:设置打印格式
练习四:打印预览与打印报表
练习五:使用prlntdialog选择打印机
练习六:保存图形文件
第18章 使用com+服务
练习一:编写net组件
练习二:编写转帐类
练习三:创建keyfile与strong name
练习四:创建客户端的接口
练习五:测试com十应用程序
第19章 编写一个监控文件变动的windows service
练习一:使用windows service模板
练习二:使用eventlog与filesystem watcher控件
练习三:使用installer类
练习四:安装windows service
练习五:启动服务与暂停服务
第20章 编写资源管理器
练习一:创建ucom file manager用户界面
练习二:编写初始化应用程序的代码
练习三:编写事件过程
练习四:打开文本文件
第21章 编写提供数据的web service
练习一:创建web service
练习二:编写使用web service的windows forms客户端
第22章 编写asp.net网页
练习一:创建asp.net项目
练习二:设计分页
练习三:增加编辑数据的按钮
练习四:编写修改、取消、保存按钮事件处理过程
练习五:编写添加功能
练习六:编写删除功能
附录
英中文对照表
C#与.net Framework实战演练
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!