互联网
类型
可以朗读
语音朗读
260千字
字数
2024-08-01
发行日期
展开全部
主编推荐语
本书详细介绍了使用C#进行程序开发需要掌握的知识和技术。
内容简介
全书38章,内容包括C#简介、数据类型与变量、表达式与运算符、输入与输出、程序的流程控制、窗口设计、控件设计、图像设计等。书中所有知识都结合具体实例进行分析,案例的程序代码讲解详细,可以使读者轻松领会C#程序开发的精髓,快速提高开发技能。
目录
- 版权信息
- 作者简介
- 内容简介
- 前言
- 第1章 C#和Visual Studio
- 1-1 认识C#
- 1-1-1 C#的起源
- 1-1-2 认识C#的开发者
- 1-2 认识.NET
- 1-2-1 .NET是什么
- 1-2-2 .NET的版本演变
- 1-2-3 认识.NET Framework、.NET Core、.NET
- 1-3 C#从编译到执行的概念
- 1-3-1 传统程序从编译到执行
- 1-3-2 认识微软.NET的跨平台概念
- 1-4 认识/下载/安装Visual Studio
- 1-4-1 认识Visual Studio的版本
- 1-4-2 下载Visual Studio
- 1-4-3 安装Visual Studio
- 1-4-4 安装Visual Studio其他模块
- 1-4-5 卸载Visual Studio
- 1-5 方案、项目和程序
- 1-5-1 认识方案、项目和程序
- 1-5-2 方案、项目和C#程序的默认扩展名
- 1-5-3 本书所设计的方案重点
- 1-6 控制台的应用程序类
- 1-7 本书的项目内容
- 1-8 创建、关闭与打开方案实例
- 1-8-1 创建控制台应用程序.NET Framework 4.8方案
- 1-8-2 关闭方案
- 1-8-3 打开方案
- 1-9 创建.NET 7.0的方案
- 1-9-1 创建控制台应用程序.NET 7.0的方案
- 1-9-2 创建Windows Forms方案
- 1-10 查看方案文件夹
- 1-10-1 查看.NET Framework 4.8的ch1_1方案
- 1-10-2 查看创建控制台应用程序.NET 7.0的ch1_2方案
- 1-10-3 查看Windows Forms的ch1_3方案
- 1-10-4 方案和项目有相同的名称
- 1-10-5 方案和项目在相同的文件夹
- 第2章 设计第一个C#程序
- 2-1 解析.NET Framework的C#语言结构
- 2-1-1 先前准备工作
- 2-1-2 引用命名空间的类
- 2-1-3 C#的基本结构
- 2-1-4 类class
- 2-1-5 Main()函数
- 2-1-6 方案ch2_2-C#程序的体验
- 2-1-7 执行方案
- 2-2 解析.NET 7.0的C#语言结构
- 2-2-1 准备方案ch2_3
- 2-2-2 网址参考与批注符号
- 2-2-3 隐式using引用命名空间
- 2-2-4 Main()不见了
- 2-2-5 转换成Program.Main样式程序
- 2-2-6 执行C#的方案
- 2-3 不使用顶级语句
- 2-4 认识C#的可执行文件
- 习题实操题
- 第3章 数据类型与变量
- 3-1 变量名的使用
- 3-1-1 认识C#语言的变量
- 3-1-2 认识不需事先声明变量的程序语言
- 3-2 变量的声明
- 3-2-1 基本概念
- 3-2-2 var变量的声明
- 3-2-3 GetType()
- 3-3 基本数据类型
- 3-4 整数数据类型
- 3-4-1 整数基本概念
- 3-4-2 整数数据类型的属性
- 3-4-3 不同进制的整数
- 3-4-4 千位分隔符
- 3-4-5 整数的后缀字符
- 3-4-6 sizeof()
- 3-5 浮点数数据类型
- 3-5-1 浮点数基本概念
- 3-5-2 浮点数数据类型的属性
- 3-5-3 浮点数的后缀字符
- 3-5-4 科学记数法
- 3-5-5 千位分隔符
- 3-5-6 sizeof()
- 3-5-7 认识float和double的NaN和无限大
- 3-6 字符数据类型
- 3-6-1 使用sizeof()函数列出字符长度
- 3-6-2 设定字符的常值
- 3-6-3 输出一般符号
- 3-6-4 转义字符
- 3-7 字符串数据类型
- 3-7-1 字符串内含有转义字符
- 3-7-2 @字符与字符串
- 3-7-3 撰写多行字符串
- 3-8 布尔值数据类型
- 3-9 object数据类型
- 3-9-1 object数据类型
- 3-9-2 Value Type数据类型
- 3-9-3 装箱
- 3-9-4 拆箱
- 3-9-5 拆箱/装箱与泛型
- 3-10 dynamic数据类型
- 3-11 变量的默认值default
- 3-12 数据类型的转换
- 3-12-1 隐式转换
- 3-12-2 显式转换
- 3-13 const常量
- 3-14 ?与null
- 3-15 值数据类型与引用数据类型
- 3-16 匿名数据类型
- 习题实操题
- 第4章 表达式与运算符
- 4-1 程序设计的专有名词
- 4-1-1 程序代码
- 4-1-2 表达式
- 4-1-3 运算符与操作数
- 4-1-4 操作数也可以是一个表达式
- 4-1-5 指定运算符
- 4-1-6 C#语言可以一次指定多个运算符为相同的值
- 4-1-7 单元运算符
- 4-1-8 二元运算符
- 4-1-9 三元运算符
- 4-2 算术运算
- 4-2-1 基础算术运算符号
- 4-2-2 负号(-)运算
- 4-2-3 运算符优先级
- 4-2-4 程序代码指令太长时的分行处理
- 4-3 不同数据类型混合应用
- 4-3-1 整数和字符混合使用
- 4-3-2 开学了学生买球鞋
- 4-4 递增和递减表达式
- 4-5 复合表达式
- 4-5-1 复合表达式基础
- 4-5-2 新版C#空合并赋值运算符
- 4-6 专题
- 4-6-1 圆周率
- 4-6-2 计算圆柱体积
- 习题实操题
- 第5章 位运算
- 5-1 Convert.ToString()方法
- 5-2 位运算基础概念
- 5-2-1 基础位运算
- 5-2-2 复合式位运算
- 5-3 &运算符
- 5-4 |运算符
- 5-5 ^运算符
- 5-6 ~运算符
- 5-7 <<运算符
- 5-8 >>运算符
- 5-9 运算符优先级
- 习题实操题
- 第6章 输入与输出
- 6-1 Console.WriteLine()
- 6-1-1 输出字符串
- 6-1-2 参数是字符串和对象
- 6-1-3 字符串插补
- 6-1-4 格式化数字的输出
- 6-1-5 格式化日期与时间的输出
- 6-1-6 格式化预留输出空间与对齐方式
- 6-1-7 格式化货币符号输出
- 6-1-8 控制台输出颜色控制
- 6-1-9 设计控制台窗口大小
- 6-1-10 取得并设定光标的位置
- 6-2 Console.Write()
- 6-3 Console.Read()/Console.ReadKey()/Console.ReadLine()
- 6-3-1 Console.Read()
- 6-3-2 Console.ReadKey()
- 6-3-3 Console.ReadLine()
- 6-4 其他常用的屏幕方法
- 6-5 数据的转换
- 6-5-1 读取数据时使用Parse()转换
- 6-5-2 读取数据时使用TryParse()转换
- 6-5-3 Convert类的方法
- 6-6 日期格式的转换
- 6-7 Math类
- 6-7-1 Math类的数学常数
- 6-7-2 Math类的三角函数
- 6-7-3 Math类常用的方法
- 6-8 专题
- 6-8-1 银行存款复利的计算
- 6-8-2 价值衰减的计算
- 6-8-3 计算地球到月球所需时间
- 6-8-4 计算坐标轴两个点之间的距离
- 6-8-5 房屋贷款问题实操
- 6-8-6 使用反余弦函数计算圆周率
- 6-8-7 鸡兔同笼——解联立方程式
- 习题实操题
- 第7章 程序的流程控制
- 7-1 关系运算符
- 7-2 逻辑运算符
- 7-3 完整C#运算符优先级表
- 7-4 if语句
- 7-5 if … else语句
- 7-6 if … else if … else语句
- 7-7 与流程控制有关的特殊表达式
- 7-7-1 e1 ? e2 : e3特殊表达式
- 7-7-2 ??特殊表达式
- 7-8 switch语句
- 7-9 goto语句
- 7-10 专题
- 7-10-1 BMI指数计算
- 7-10-2 闰年计算
- 7-10-3 判断成绩并输出适当的字符串
- 7-10-4 十二生肖系统
- 7-10-5 火箭升空
- 7-10-6 简易的人工智能程序——职场兴趣方向测验
- 7-10-7 输出每个月有几天
- 7-10-8 is和is not关键词
- 习题实操题
- 第8章 程序的循环设计
- 8-1 for循环
- 8-1-1 单层for循环
- 8-1-2 for语句应用到无限循环中
- 8-1-3 双层或多层for循环
- 8-1-4 for循环指标递减设计
- 8-2 while循环
- 8-2-1 单层while循环
- 8-2-2 while语句应用到无限循环
- 8-2-3 双层或多层while循环
- 8-3 do … while循环
- 8-3-1 单层do … while循环
- 8-3-2 do … while语句的无限循环
- 8-3-3 双层或多层do … while循环
- 8-4 循环的选择
- 8-5 break语句
- 8-6 continue语句
- 8-7 随机数Random类
- 8-7-1 创建随机数对象
- 8-7-2 随机数方法Next()
- 8-7-3 随机数种子
- 8-8 休息方法
- 8-9 专题
- 8-9-1 计算平均成绩和不及格人数
- 8-9-2 猜数字游戏
- 8-9-3 认识欧几里得算法
- 8-9-4 计算圆周率
- 8-9-5 鸡兔同笼——使用循环计算
- 8-9-6 国王的麦粒
- 8-9-7 离开无限循环并结束程序的Ctrl+C键
- 8-9-8 银行账户冻结
- 8-9-9 自由落体
- 8-9-10 罗马数字
- 8-9-11 定时器设计
- 习题实操题
- 第9章 数组
- 9-1 一维数组
- 9-1-1 基础概念
- 9-1-2 数组的声明
- 9-1-3 数组声明与初始值设定
- 9-1-4 读取一维数组的输入
- 9-1-5 一维数组的应用实例
- 9-1-6 一维数组的方法
- 9-1-7 object数组
- 9-2 二维数组
- 9-2-1 基础概念
- 9-2-2 二维数组的初始值设定
- 9-2-3 二维数组的应用实例
- 9-2-4 二维数组与匿名数组
- 9-2-5 二维数组的应用解说
- 9-3 更高维的数组
- 9-3-1 基础概念
- 9-3-2 三维或更高维数组的应用解说
- 9-4 匿名数组
- 9-5 foreach遍历数组
- 9-6 Array类
- 9-6-1 Array类的属性
- 9-6-2 Array类的方法
- 9-6-3 清除数组内容Clear()
- 9-6-4 Copy()方法
- 9-6-5 GetLength()/GetLowerBound()/GetUpperBound()
- 9-6-6 SetValue()/GetValue()
- 9-6-7 IndexOf()
- 9-6-8 Reverse()/Sort()
- 9-6-9 BinarySearch()
- 9-7 不规则数组
- 9-7-1 基础概念
- 9-7-2 声明不规则数组
- 9-7-3 声明不规则数组并设定初始值
- 9-7-4 不规则数组与匿名数组
- 9-8 排序原理与实操
- 9-8-1 排序的概念与应用
- 9-8-2 排序实操
- 9-9 专题
- 9-9-1 斐波那契数列
- 9-9-2 二维数组乘法
- 9-9-3 4×4魔术方块
- 9-9-4 基础统计
- 9-9-5 不规则数组的专题
- 习题实操题
- 第10章 字符和字符串的处理
- 10-1 字符Char类
- 10-2 字符Char类常用的方法
- 10-2-1 与字符有关的方法
- 10-2-2 判断数字和字母的方法
- 10-2-3 判断大小写字母的方法
- 10-2-4 判断符号的方法
- 10-2-5 判断是不是标点符号的方法
- 10-3 字符数组与字符串
- 10-4 字符串String类
- 10-4-1 基础概念
- 10-4-2 字符串的属性Length
- 10-4-3 定义null或空字符串
- 10-4-4 const关键词应用到字符串
- 10-4-5 字符串连接“+”符号
- 10-4-6 字符串引用
- 10-5 字符串String类常用的方法
- 10-5-1 与字符串有关常用的方法
- 10-5-2 更改字符串字母大小写
- 10-5-3 首字母大写的转换
- 10-5-4 字符串结合Concat()
- 10-5-5 字符串比较
- 10-5-6 字符串截取Substring()
- 10-5-7 回传字符串出现的索引位置
- 10-5-8 回传是否包含特定字符串Contains()
- 10-5-9 字符串替换Replace()
- 10-5-10 字符串分割Split()
- 10-5-11 删除字符串前后的空格符Trim()
- 10-5-12 移除字符串指定内容Remove()
- 10-5-13 字符串是否由特定内容开始或结尾
- 10-5-14 格式化字符串Format()
- 10-5-15 插入字符串Insert()
- 10-5-16 填充字符
- 10-5-17 IsNullOrEmpty()和IsNullOrWhiteSpace()
- 10-6 StringBuilder类
- 10-6-1 创建StringBuilder字符串变量
- 10-6-2 StringBuilder字符串变量的属性
- 10-7 StringBuilder类常用的方法
- 10-7-1 与字符串有关常用的方法
- 10-7-2 将StringBuilder字符串转为String字符串ToString()
- 10-7-3 清除字符串Clear()
- 10-7-4 将指定内容加到对象末端Append()
- 10-7-5 将指定内容插入对象Insert()
- 10-7-6 内容替换Replace()
- 10-8 专题
- 10-8-1 判断是不是输入英文字母
- 10-8-2 仿真输入账号和密码
- 10-8-3 创建字符串数组然后输出键值
- 10-8-4 计算句子各类字符数
- 10-8-5 字符串比较与object
- 习题实操题
- 第11章 集合
- 11-1 认识.NET的集合
- 11-2 System.Collections命名空间
- 11-3 动态数组ArrayList
- 11-3-1 创建ArrayList对象
- 11-3-2 ArrayList的常用属性
- 11-3-3 ArrayList的常用方法
- 11-3-4 初始化ArrayList对象元素内容
- 11-3-5 遍历ArrayList对象
- 11-3-6 增加元素Add()和AddRange()
- 11-3-7 插入元素Insert()
- 11-3-8 是否包含特定元素Contains()
- 11-3-9 删除元素Clear()/Remove()/RemoveAt()/Remove Range()
- 11-3-10 回传元素出现的位置IndexOf()/LastIndexOf()
- 11-3-11 元素重新排列Sort()/Reverse()
- 11-4 哈希表
- 11-4-1 创建哈希表对象
- 11-4-2 哈希表的常用属性
- 11-4-3 哈希表的常用方法
- 11-4-4 增加元素Add()
- 11-4-5 初始化哈希表
- 11-4-6 遍历哈希表
- 11-4-7 遍历键/遍历值
- 11-4-8 查询键/值Contains()/ContainsKey()/ContainsValue()
- 11-4-9 清除哈希表的元素Clear()/Remove()
- 11-5 专题
- 11-5-1 设计星座密码
- 11-5-2 哈希表依照键排序
- 习题实操题
- 第12章 函数的应用
- 12-1 函数的体验
- 12-1-1 基础概念
- 12-1-2 转换成Program.Main样式程序
- 12-2 函数的主体
- 12-2-1 函数声明
- 12-2-2 函数中传递参数的设计
- 12-2-3 函数中不同类型的参数设计
- 12-3 函数的回传值return
- 12-3-1 整数回传值的应用
- 12-3-2 浮点数回传值的应用
- 12-3-3 字符回传值的应用
- 12-3-4 return让程序提早结束
- 12-4 一个程序有多个函数的应用
- 12-4-1 简单的调用
- 12-4-2 函数间的调用
- 12-4-3 函数是另一个函数的参数
- 12-5 递归函数的调用
- 12-5-1 从掉入无限递归说起
- 12-5-2 非递归设计阶乘数函数
- 12-5-3 从一般函数进化到递归函数
- 12-5-4 递归后记
- 12-6 数组数据的传递
- 12-6-1 传递数据的基础概念
- 12-6-2 数组的传递
- 12-6-3 函数调用——数据交换使用ref参数
- 12-6-4 函数调用——回传数据用关键词out
- 12-6-5 函数调用——只读关键词in
- 12-6-6 函数调用——可变动数量参数params
- 12-6-7 传递二维数组数据
- 12-6-8 匿名数组
- 12-7 命令行的输入
- 12-7-1 Main()方法
- 12-7-2 顶级语句方法
- 12-8 全局变量与局部变量
- 12-9 Expression-Bodied Method
- 12-10 dynamic函数与参数
- 12-11 专题
- 12-11-1 设计质数测试函数
- 12-11-2 抽奖程序设计
- 12-11-3 使用递归方式设计斐波那契数列
- 12-11-4 设计欧几里得算法函数
- 习题实操题
- 第13章 C#结构数据struct
- 13-1 结构数据类型
- 13-1-1 基本概念
- 13-1-2 存取修饰词
- 13-2 声明结构变量
- 13-2-1 声明结构变量方法
- 13-2-2 使用结构成员
- 13-3 创建结构数据
- 13-3-1 读取数据
- 13-3-2 初始化结构数据
- 13-4 将结构对象的内容设置给另一个结构对象
- 13-5 嵌套的结构
- 13-6 C#结构struct的特色
- 13-7 new创建结构对象
- 13-8 结构数据与数组
- 13-9 struct的建构方法
- 13-10 数据封装——结构的set和get
- 13-11 readonly字段
- 13-12 with关键词
- 13-13 专题
- 13-13-1 找出最高分学生的姓名和分数
- 13-13-2 平面坐标系统
- 习题实操题
- 第14章 列举enum
- 14-1 定义列举enum的数据类型声明变量
- 14-2 定义列举enum元素的整数值
- 14-2-1 定义enum从元素1开始编号
- 14-2-2 定义列举enum元素数值不连续
- 14-2-3 不规则定义列举enum元素值
- 14-3 列举的转换
- 14-4 专题
- 14-4-1 enum的使用目的
- 14-4-2 百货公司折扣
- 习题实操题
- 第15章 日期和时间
- 15-1 DateTime的建构方法与属性
- 15-1-1 创建DateTime对象
- 15-1-2 取得DateTime对象属性
- 15-1-3 基础属性的认识
- 15-1-4 TimeOfDay/DayOfWeek/DayOfYear
- 15-1-5 Now/UtcNow
- 15-1-6 刻度数Ticks
- 15-2 ToString()方法与输出日期与时间格式
- 15-3 DateTime的方法
- 15-3-1 日期加法相关函数的应用
- 15-3-2 日期比较相关函数的应用
- 15-3-3 月份的天数DaysInMonth()
- 15-3-4 是否闰年IsLeapYear()
- 15-3-5 长/短日期与时间格式和字符串
- 15-3-6 解析时间与日期字符串
- 15-4 文化特性CultureInfo类
- 15-4-1 取得目前操作系统的文化名称
- 15-4-2 日期与时间格式
- 15-5 TimeSpan建构方法与属性
- 15-5-1 TimeSpan的建构方法
- 15-5-2 TimeSpan的属性
- 15-6 DateTime和TimeSpan的混合应用
- 15-7 TimeSpan类常用的方法
- 15-7-1 时间间隔加法Add()
- 15-7-2 时间间隔减法Subtract()
- 15-7-3 解析字符串为时间间隔Parse()和TryParse()
- 15-8 专题
- 15-8-1 var与运算符应用在DateTime和TimeSpan类中
- 15-8-2 设计一个休息秒数函数
- 15-8-3 设计一个时钟
- 习题实操题
- 第16章 类与对象
- 16-1 认识对象与类
- 16-2 定义类与对象
- 16-2-1 定义类
- 16-2-2 声明并创建类对象
- 16-3 类的基本实例
- 16-3-1 创建类的字段
- 16-3-2 存取类的成员
- 16-3-3 不使用顶级语句创建含类的方案
- 16-3-4 命名空间、顶级语句与插入类
- 16-4 值型与引用型
- 16-5 类的方法
- 16-6 一个类含多个对象的应用
- 16-6-1 一个类含多个对象的应用
- 16-6-2 创建类的对象数组
- 16-7 再谈方法
- 16-7-1 基本参数的传送
- 16-7-2 认识形参与实参
- 16-7-3 方法的回传值
- 16-8 变量的有效范围
- 16-8-1 for循环的索引变量
- 16-8-2 局部变量
- 16-8-3 类内成员变量与方法变量有相同的名称
- 16-9 部分类
- 16-10 专题
- 16-10-1 计算面积
- 16-10-2 创建并输出员工数据
- 16-10-3 Expression-Bodied Method当作类的方法
- 16-10-4 匿名类
- 习题实操题
- 第17章 对象的建构、属性与封装
- 17-1 建构方法
- 17-1-1 默认的建构方法
- 17-1-2 自建建构方法
- 17-1-3 再谈this关键词
- 17-1-4 析构方法
- 17-2 重载
- 17-2-1 从Console.WriteLine()看重载定义
- 17-2-2 把重载应用到建构方法中
- 17-2-3 把重载应用在一般方法中
- 17-2-4 认识方法签名
- 17-3 类成员的访问权限——封装
- 17-3-1 基础概念
- 17-3-2 类成员的访问控制
- 17-3-3 设计具有封装效果的程序
- 17-4 属性成员
- 17-4-1 基本概念
- 17-4-2 表达式主体方法应用到属性中
- 17-4-3 自动实操属性
- 17-4-4 自动属性初始值设定
- 17-4-5 属性初始化
- 17-4-6 为属性增加逻辑判断
- 17-5 类的只读和常数字段
- 17-5-1 const应用在类字段中
- 17-5-2 只读
- 17-6 静态关键词
- 17-6-1 类中的静态字段
- 17-6-2 类中的静态方法
- 17-6-3 静态类
- 17-6-4 静态建构方法
- 17-6-5 扩展方法
- 17-7 索引器
- 17-8 专题
- 17-8-1 建构方法与数学类的应用
- 17-8-2 银行存款与提款
- 17-8-3 将static用于NBA球员人数统计
- 17-8-4 星期信息转成索引
- 习题实操题
- 第18章 继承与多态
- 18-1 继承
- 18-1-1 从3个简单的C#程序谈起
- 18-1-2 继承的语法
- 18-1-3 观察父类建构方法的调用
- 18-1-4 父类属性为public时子类初始化父类属性
- 18-1-5 父类属性为private时调用父类建构方法——关键词this
- 18-1-6 存取修饰符protected
- 18-1-7 将字段改为属性概念
- 18-1-8 分层继承
- 18-1-9 多层次继承
- 18-1-10 继承类型总结与陷阱
- 18-1-11 父类与子类有相同的成员变量名称
- 18-2 IS-A和HAS-A关系
- 18-2-1 IS-A关系与is
- 18-2-2 HAS-A关系——聚合
- 18-2-3 HAS-A关系——组合
- 18-3 对C#程序代码太长的处理
- 18-4 多态
- 18-4-1 编译时多态
- 18-4-2 重写
- 18-4-3 new关键词
- 18-4-4 重写使用virtual和override
- 18-4-5 运行时多态
- 18-5 静态绑定与动态绑定
- 18-6 嵌套类
- 18-7 sealed类
- 18-7-1 把sealed应用在类中
- 18-7-2 把sealed应用在方法中
- 18-8 专题
- 18-8-1 薪资计算
- 18-8-2 面积计算
- 18-8-3 多态的应用
- 18-8-4 重写ToString()
- 习题实操题
- 第19章 抽象类
- 19-1 使用抽象类的场合
- 19-2 抽象类基本概念
- 19-3 抽象方法的基本概念
- 19-4 抽象类与抽象方法概念整理
- 19-5 抽象类的建构方法
- 19-6 运行时多态应用到抽象类中
- 19-7 专题
- 19-7-1 数学计算
- 19-7-2 正方形面积计算
- 19-7-3 多态应用——数组概念扩充计算不同外形面积程序
- 习题实操题
- 第20章 接口
- 20-1 认识接口
- 20-1-1 基本概念
- 20-1-2 使用upcasting实现接口
- 20-1-3 为什么使用接口
- 20-2 接口实例
- 20-2-1 两个类实现一个接口
- 20-2-2 多层次继承与实现
- 20-2-3 接口方法内含参数
- 20-3 显式实现
- 20-4 接口属性实现
- 20-5 多重继承与实现
- 20-6 虚拟接口方法
- 20-7 专题
- 20-7-1 接口有相同的抽象方法
- 20-7-2 事务历史记录
- 20-7-3 将虚拟接口方法应用在交通工具上
- 习题实操题
- 第21章 认识泛型
- 21-1 从重载定义说起
- 21-1-1 交换函数Swap()
- 21-1-2 object数据类型
- 21-2 认识泛型
- 21-2-1 基础应用
- 21-2-2 泛型函数——参数是数组
- 21-3 泛型类
- 21-4 泛型类——字段与属性
- 21-4-1 定义泛型类——内含一个字段
- 21-4-2 定义泛型类——内含一个属性
- 21-4-3 定义泛型类——内含多种数据类型
- 21-4-4 定义泛型类——内含数组字段
- 21-5 泛型类——方法
- 21-5-1 泛型方法的参数是泛型
- 21-5-2 泛型方法内有一般参数
- 21-5-3 泛型方法的数据类型是泛型
- 21-6 含有泛型方法的一般类
- 21-7 泛型方法重载
- 21-7-1 一般类中的泛型方法重载
- 21-7-2 泛型类中的泛型方法重载
- 21-8 专题
- 21-8-1 创建数组与输出数组
- 21-8-2 仿真栈操作
- 习题实操题
- 第22章 泛型集合
- 22-1 System.Collections.Generic
- 22-2 List列表
- 22-2-1 创建List对象
- 22-2-2 List的属性
- 22-2-3 List方法
- 22-3 Stack栈
- 22-3-1 创建Stack对象
- 22-3-2 Stack的属性
- 22-3-3 Stack方法
- 22-4 Queue队列
- 22-4-1 创建Queue对象
- 22-4-2 Queue的属性
- 22-4-3 Queue方法
- 22-5 LinkedList链表
- 22-5-1 创建LinkedList对象
- 22-5-2 LinkedList的属性
- 22-5-3 LinkedList方法
- 22-6 SortedSet集合
- 22-6-1 创建SortedSet对象
- 22-6-2 SortedSet的属性
- 22-6-3 SortedSet方法
- 22-7 Dictionary集合
- 22-7-1 创建Dictionary对象
- 22-7-2 Dictionary的属性
- 22-7-3 Dictionary方法
- 22-8 SortedList集合
- 22-8-1 创建SortedList对象
- 22-8-2 SortedList的属性
- 22-8-3 SortedList方法
- 22-9 SortedDictionary集合
- 习题实操题
- 第23章 元组(Tuple)
- 23-1 元组的功能
- 23-2 元组声明
- 23-2-1 早期C# 4.0的Tuple
- 23-2-2 C# 7.0至今的Tuple
- 23-3 存取元组元素内容
- 23-3-1 Item属性
- 23-3-2 Rest属性
- 23-4 创建嵌套元组
- 23-5 设定元素名称
- 23-6 元组赋值设定
- 23-7 将==和!=符号用于元组比较
- 23-8 把元组当作方法的参数进行传递
- 23-9 把元组当作方法的回传值
- 23-10 专题
- 23-10-1 到学校的距离
- 23-10-2 数据交换程序设计
- 23-10-3 计算最大值与最小值
- 习题实操题
- 第24章 程序调试与异常处理
- 24-1 程序异常
- 24-1-1 一个除数为0的错误
- 24-1-2 撰写异常处理程序try-catch
- 24-1-3 try-catch-finally
- 24-2 C#的异常信息
- 24-3 设计多组异常处理程序
- 24-3-1 常见的异常对象
- 24-3-2 设计捕捉多个异常的程序
- 24-4 捕捉所有异常
- 24-4-1 再谈try-catch
- 24-4-2 Exception
- 24-5 抛出异常
- 24-6 创建自己的异常名称
- 24-7 程序调试的典故
- 24-8 专题
- 24-8-1 函数的参数是null时将产生异常
- 24-8-2 银行密码长度测试
- 24-8-3 温度异常
- 习题实操题
- 第25章 正则表达式
- 25-1 正则表达式基础
- 25-1-1 认识Regex.IsMatch()方法
- 25-1-2 正则表达式基础
- 25-1-3 使用大括号{ }处理重复出现的字符串
- 25-1-4 处理市区电话字符串的方式
- 25-1-5 用括号分组
- 25-1-6 用小括号处理区域号码
- 25-1-7 使用管道|
- 25-1-8 使用?号做搜寻
- 25-1-9 使用*号做搜寻
- 25-1-10 使用+号做搜寻
- 25-1-11 大小写忽略RegexOptions.IgnoreCase
- 25-1-12 正则表达式量次的表
- 25-2 正则表达式的特殊字符
- 25-2-1 特殊字符表
- 25-2-2 单一字符使用通配符中的“.”
- 25-2-3 字符分类
- 25-2-4 字符分类的^字符
- 25-2-5 所有字符使用通配符中的“.*”
- 25-2-6 特殊字符$
- 25-2-7 特殊字符^
- 25-3 IsMatch()方法的万用程序与功能扩充
- 25-4 找出第一个匹配搜寻规则的内容Regex.Match()
- 25-4-1 搜寻第一次出现的内容
- 25-4-2 Match对象的NextMatch()方法
- 25-5 找出所有匹配搜寻规则的内容Regex.Matches()
- 25-6 字符串修改Regex.Replace()
- 25-7 正则表达式的分割Regex.Split()
- 25-8 专题
- 25-8-1 搜寻A开头的国际品牌
- 25-8-2 电话号码的隐藏
- 25-8-3 删除英文称呼
- 25-8-4 测试网址是否正确
- 25-8-5 信息加密
- 习题实操题
- 第26章 委托
- 26-1 认识委托
- 26-2 委托操作
- 26-2-1 声明委托
- 26-2-2 设计目标方法
- 26-2-3 创建委托对象实例并设定目标方法——常见用法
- 26-2-4 创建委托对象实例并设定目标方法——简化用法
- 26-2-5 调用委托
- 26-2-6 简单的委托实例
- 26-2-7 调整委托指向
- 26-3 把委托当作方法的参数
- 26-4 多播委托
- 26-5 泛型委托
- 26-6 匿名方法
- 26-6-1 基础匿名方法
- 26-6-2 匿名方法引用外部的变量
- 26-6-3 把匿名方法当作参数传送
- 26-7 Func委托
- 26-8 Action委托
- 26-9 Predicate委托
- 习题实操题
- 第27章 Lambda表达式
- 27-1 Lambda表达式定义
- 27-2 Lambda基础语法
- 27-2-1 没有输入参数的Lambda
- 27-2-2 有1个输入参数的Lambda
- 27-2-3 有多个参数的Lambda
- 27-3 Lambda基础实例
- 27-3-1 表达式的Lambda
- 27-3-2 语句的Lambda
- 27-4 Lambda就是委托指定引用的匿名方法
- 27-5 将Lambda表达式转换成delegate委托类型
- 27-5-1 将Lambda转成Func委托
- 27-5-2 将Lambda转成Action委托
- 27-6 外在变量对Lambda表达式的影响
- 27-7 专题
- 27-7-1 创建产生随机数的Lambda表达式
- 27-7-2 创建计算圆面积的Lambda表达式
- 27-7-3 基础数学运算的Lambda表达式
- 27-7-4 创建账号长度测试
- 27-7-5 Lambda应用在筛选数据中
- 习题实操题
- 第28章 事件
- 28-1 认识事件
- 28-2 第一个C#事件与处理程序
- 28-2-1 声明一个事件
- 28-2-2 设计事件触发位置
- 28-2-3 注册事件
- 28-2-4 第1个事件实例
- 28-3 C#内置的事件处理程序委托
- 28-4 传递事件数据
- 28-5 传送自定义时间数据
- 28-6 专题
- 习题实操题
- 第29章 基础Windows窗口设计
- 29-1 创建新的项目
- 29-2 认识Visual Studio窗口环境
- 29-2-1 认识Visual Studio窗口
- 29-2-2 切换程序设计区内容
- 29-2-3 执行方案ch29_1
- 29-3 查看ch29_1文件夹
- 29-3-1 查看方案文件夹
- 29-3-2 查看项目文件夹
- 29-3-3 查看可执行文件的文件夹
- 29-4 认识主要窗口区域
- 29-4-1 从窗体设计模式到窗体程序代码模式
- 29-4-2 从窗体程序代码设计模式切换回窗体设计模式
- 29-4-3 主要窗口显示更多程序内容
- 29-4-4 关闭主要窗口的标签内容
- 29-5 工具箱
- 29-5-1 显示工具箱
- 29-5-2 固定工具箱位置
- 29-5-3 浮动工具箱
- 29-6 新增或删除窗体
- 29-6-1 新增窗体
- 29-6-2 删除窗体
- 29-7 窗体属性
- 29-7-1 窗体设计属性
- 29-7-2 窗体杂项Misc
- 29-7-3 窗体外观属性
- 29-7-4 窗体行为
- 29-7-5 窗体布局
- 29-7-6 窗口样式属性
- 29-8 窗体事件
- 29-8-1 打开窗体事件的方法
- 29-8-2 常见的窗体事件
- 29-8-3 输出对话框
- 29-9 解析Windows Forms窗口项目程序
- 29-9-1 解析Form1.cs和Form1.Designer.cs
- 29-9-2 解析Program.cs
- 29-10 在窗体内创建与布局控件
- 29-10-1 创建控件的方法
- 29-10-2 使用方法1创建Button控件实例
- 29-10-3 使用方法2创建Label控件
- 29-10-4 控件的大小调整
- 29-10-5 控件位置的调整
- 29-10-6 创建多个相同的控件
- 29-10-7 删除与撤消删除控件
- 29-10-8 对齐窗体中央
- 29-10-9 调整水平间距
- 29-10-10 调整垂直间距
- 29-10-11 多个控件的对齐
- 29-11 专题
- 29-11-1 用程序设计属性
- 29-11-2 启动窗口有对话框
- 29-11-3 创建多个窗体
- 习题实操题
- 第30章 基础控件设计
- 30-1 控件设定知识的复习
- 30-2 Button功能按钮
- 30-2-1 Button常用属性
- 30-2-2 Button常用事件
- 30-2-3 Button项目实例
- 30-2-4 新增快捷键
- 30-2-5 Name属性
- 30-2-6 认识事件处理程序的参数object sender
- 30-2-7 执行系统应用程序
- 30-3 Label标签
- 30-3-1 Label常用属性
- 30-3-2 Label常用事件
- 30-3-3 Label项目实例
- 30-4 TextBox文本框
- 30-4-1 TextBox常用属性
- 30-4-2 TextBox常用事件
- 30-4-3 TextBox显示文字的实例
- 30-4-4 数值转换的应用
- 30-4-5 异常发生
- 30-4-6 TextChanged事件实例
- 30-4-7 选取文件实例
- 30-5 MessageBox消息框
- 30-6 RadioButton单选按钮
- 30-6-1 RadioButton常用属性
- 30-6-2 RadioButton常用事件
- 30-6-3 单选按钮的基础实例
- 30-7 CheckBox复选框
- 30-7-1 CheckBox常用属性
- 30-7-2 CheckBox常用事件
- 30-7-3 复选框的基础实例
- 30-8 容器——GroupBox分组框
- 30-9 容器——Pane面板控制
- 30-10 ListBox清单
- 30-10-1 ListBox常用属性
- 30-10-2 使用字符串集合编辑器创建列表
- 30-10-3 ListBox常用的方法
- 30-10-4 使用程序选取或取消选取项目
- 30-10-5 ListBox常用事件
- 30-10-6 综合应用
- 30-11 ComboBox下拉组合框
- 30-11-1 ComboBox常用属性
- 30-11-2 ComboBox事件
- 30-12 CheckedListBox复选框清单
- 30-12-1 CheckedListBox常用属性
- 30-12-2 CheckedListBox常用的方法
- 30-12-3 CheckedListBox事件
- 30-13 鼠标事件
- 30-13-1 体会鼠标事件实例
- 30-13-2 事件的EventArgs e参数
- 30-14 键盘事件
- 30-14-1 KeyDown和KeyUp事件
- 30-14-2 KeyPress事件
- 习题实操题(本章习题控件大小、位置可以自行设定)
- 第31章 静态图像迈向动态图像设计
- 31-1 PictureBox图片框
- 31-1-1 PictureBox常用属性
- 31-1-2 程序设计图片框位置
- 31-1-3 程序设计图像大小
- 31-1-4 加载与删除图像
- 31-1-5 静态到动态图像实例
- 31-2 把图像应用在窗体背景中
- 31-3 把图像应用在Button中
- 31-4 内含图像的标签
- 31-5 ImageList图像列表
- 31-5-1 创建控件与图像列表关联
- 31-5-2 创建图像列表内容
- 31-5-3 创建动态火柴人
- 31-6 Timer定时器控件
- 31-6-1 创建控件与图像列表关联
- 31-6-2 启动与结束计时功能
- 31-6-3 定时器原理
- 31-6-4 走马灯的设计
- 31-7 专题
- 31-7-1 先前准备工作
- 31-7-2 摆翅的蝴蝶
- 31-7-3 移动的蝴蝶——翅膀没有摆动
- 31-7-4 飞舞的蝴蝶
- 习题实操题
- 第32章 常用的控件
- 32-1 ToolTip提示说明
- 32-1-1 ToolTip常用属性
- 32-1-2 ToolTip常用方法
- 32-2 DateTimePicker日期时间选择器
- 32-2-1 DateTimePicker最重要的属性Value
- 32-2-2 DateTimePicker格式化的属性Format
- 32-2-3 几个其他常用的属性
- 32-2-4 常使用的事件
- 32-2-5 定时器应用
- 32-3 MonthCalendar月历
- 32-3-1 MonthCalendar的属性——粗体设定日期
- 32-3-2 MaxDate和MinDate属性
- 32-3-3 ShowToday和ShowTodayCircle属性
- 32-3-4 选取日期相关属性
- 32-3-5 日历常用事件
- 32-4 NumericUpDown控件
- 32-4-1 NumericUpDown常用属性
- 32-4-2 NumericUpDown常用方法
- 32-4-3 NumericUpDown常用事件
- 32-4-4 定时器设计
- 32-5 共享事件
- 32-5-1 用程序代码处理共享事件
- 32-5-2 属性窗口处理共享事件
- 习题实操题
- 第33章 创建菜单和工具栏
- 33-1 MenuStrip菜单
- 33-1-1 请创建ch33_1.sln方案
- 33-1-2 MenuStrip工具
- 33-1-3 创建菜单
- 33-1-4 认识菜单
- 33-1-5 创建文件菜单
- 33-1-6 创建文件同层级的项目
- 33-1-7 创建文件的子层级项目
- 33-1-8 插入项目分隔线
- 33-1-9 插入、移动和删除项目
- 33-1-10 创建更深一层的菜单项
- 33-1-11 查看菜单项的Name和Text属性
- 33-1-12 项集合编辑器
- 33-1-13 菜单项的属性
- 33-1-14 菜单与事件
- 33-2 ContextMenuStrip快捷菜单
- 33-2-1 请创建ch33_3.sln方案
- 33-2-2 ContextMenuStrip工具
- 33-2-3 创建快捷菜单
- 33-2-4 将控件与快捷菜单创建关联
- 33-2-5 快捷菜单的实例
- 33-3 ToolStrip工具栏
- 33-3-1 ToolStrip工具
- 33-3-2 在工具栏内创建控件
- 33-3-3 控件的属性设定
- 33-3-4 工具栏的属性
- 33-3-5 工具栏实例
- 33-3-6 插入标准项
- 33-4 StatusStrip状态栏
- 33-4-1 StatusStrip工具
- 33-4-2 在状态栏内创建控件
- 33-4-3 控件的属性设定
- 习题实操题
- 第34章 常用对话框的应用
- 34-1 FontDialog字体对话框
- 34-1-1 FontDialog工具
- 34-1-2 认识默认的FontDialog字体对话框
- 34-1-3 激活字体对话框
- 34-1-4 字体对话框的回传值
- 34-1-5 字体对话框的ShowColor属性
- 34-2 ColorDialog颜色对话框
- 34-2-1 ColorDialog工具
- 34-2-2 认识默认的ColorDialog颜色对话框
- 34-2-3 激活颜色对话框
- 34-2-4 颜色对话框的回传值
- 34-3 OpenFileDialog打开文件对话框
- 34-3-1 OpenFileDialog工具
- 34-3-2 打开文件对话框的属性
- 34-3-3 打开文件对话框实操
- 34-4 SaveFileDialog保存文件对话框
- 34-5 RichTextBox富文本框
- 34-5-1 认识RTF文件格式
- 34-5-2 RichTextBox常用属性
- 34-5-3 RichTextBox常用方法
- 34-5-4 读取和保存文件
- 34-5-5 SelectionChanged事件
- 34-5-6 编辑图文并茂的文件——插入图片
- 34-5-7 RichTextBox编辑程序的设计
- 习题实操题
- 第35章 文件的输入与输出
- 35-1 认识System.IO命名空间
- 35-2 文件夹的操作
- 35-2-1 Directory类
- 35-2-2 DirectoryInfo类
- 35-3 文件的操作
- 35-3-1 File类
- 35-3-2 FileInfo类
- 35-4 总线的输入与输出
- 35-4-1 总线的输出
- 35-4-2 使用总线读取文字文件
- 35-5 文件复制、删除与移动实操
- 习题实操题
- 第36章 语音与影片
- 36-1 Console.Beep()
- 36-1-1 认识Beep()参数
- 36-1-2 认识Do-Re-Mi的频率
- 36-1-3 创建Do-Re电子琴的键盘
- 36-2 SystemSounds类
- 36-3 SoundPlayer类——播放wav文件
- 36-3-1 Load()和LoadAsync()解说
- 36-3-2 Play()和PlaySync()解说
- 36-3-3 循环播放PlayLooping()和停止播放Stop()
- 36-4 Windows Media Player——播放MP3文件
- 36-4-1 安装Windows Media Player工具
- 36-4-2 播放MP3文件
- 36-5 Windows Media Player——播放MP4文件
- 习题实操题
- 第37章 LINQ查询
- 37-1 认识LINQ
- 37-2 LINQ语法
- 37-2-1 认识LINQ表达式
- 37-2-2 from/select/where实例
- 37-2-3 let实例
- 37-2-4 orderby实例
- 37-2-5 group … by实例
- 37-2-6 group … by/into实例
- 37-2-7 join实例
- 37-3 LINQ常用方法
- 习题实操题
- 第38章 大型程序
- 38-1 窗体架构
- 38-1-1 Program.cs
- 38-1-2 Form1.cs
- 38-1-3 Form1.Designer.cs
- 38-1-4 Form1.resx
- 38-2 创建多窗体的项目
- 38-2-1 增加窗体
- 38-2-2 增加与删除窗体
- 38-2-3 切换显示窗体
- 38-2-4 显示窗体或程序代码
- 38-3 更改窗体的名称
- 38-3-1 更改Text、Name和文件名称
- 38-3-2 查看Program.cs
- 38-4 操作多窗体的方法
- 38-4-1 创建窗体对象
- 38-4-2 显示窗体
- 38-4-3 隐藏窗体
- 38-4-4 简单多窗体实操
- 38-4-5 银行贷款多窗体的实例
- 38-5 创建MDI子窗体
- 38-5-1 新增子窗体与窗体的排列
- 38-5-2 创建含RichTextBox控件的子窗体
- 习题实操题
展开全部
出版方
清华大学出版社
清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。