封面
版权信息
内容简介
作者简介
前言 PREFACE
第1章 准备工作
1.1 为什么要编写程序
1.2 C#与.NET的关系
1.3 强大的开发工具——Visual Studio
1.3.1 下载和安装
1.3.2 认识Visual Studio
1.3.3 快捷键
1.3.4 放置子窗口
1.3.5 自动隐藏窗口
1.3.6 巧用快速启动
1.3.7 个性化设置
1.4 创建第一个应用程序
1.5 解决方案与项目的关系
第2章 语法基础
2.1 代码的基本结构
2.2 命名空间
2.2.1 为什么要使用命名空间
2.2.2 如何访问命名空间中的成员
2.2.3 引入命名空间
2.2.4 using static指令
2.3 Main入口点
2.3.1 程序代码真的从Main方法开始执行吗
2.3.2 如何选择入口点
2.4 变量与常量
2.4.1 变量
2.4.2 常量
2.5 命名规则
2.6 运算符
2.6.1 简单运算
2.6.2 自增和自减运算
2.6.3 位运算
2.6.4 比较运算
2.7 流程控制
2.7.1 顺序执行
2.7.2 有选择地执行
2.7.3 循环执行
2.8 注释
2.9 基本数据类型
2.10 顶层语句
第3章 面向对象编程
3.1 类
3.1.1 字段
3.1.2 属性
3.1.3 方法
3.1.4 构造函数与析构函数
3.1.5 record类型
3.2 结构
3.3 引用类型与值类型
3.4 ref参数与out参数
3.5 方法重载
3.6 静态类与静态成员
3.7 只读字段
3.8 可访问性与继承性
3.8.1 可访问性
3.8.2 继承性
3.8.3 注意可访问性要一致
3.8.4 隐藏基类的成员
3.8.5 覆写基类成员
3.8.6 阻止类被继承
3.9 抽象类
3.10 接口
3.10.1 定义接口
3.10.2 接口与多继承
3.10.3 实现接口
3.10.4 显式实现接口
3.11 扩展方法
3.12 委托与事件
3.12.1 定义和使用委托
3.12.2 将方法作为参数传递
3.12.3 使用事件
3.13 枚举
3.13.1 使用枚举类型
3.13.2 获取枚举的值列表
3.13.3 获取枚举中各成员名称
3.13.4 枚举的位运算
3.14 特性
3.14.1 自定义特性
3.14.2 将特性应用到方法的返回值
3.14.3 通过反射技术检索特性
3.15 数组
3.15.1 定义数组的几种方法
3.15.2 多维数组
3.15.3 嵌套数组
3.15.4 复制数组
3.15.5 反转数组
3.15.6 更改数组的大小
3.15.7 在数组中查找元素
3.15.8 灵活使用ArrayList类
第4章 控制台应用程序
4.1 输出文本信息
4.2 获取键盘输入
4.2.1 Read方法
4.2.2 ReadKey方法
4.2.3 ReadLine方法
4.3 命令行参数
4.4 控制台窗口的外观
4.5 控制台窗口的大小和位置
4.6 响应CancelKeyPress事件
第5章 字符串处理与数学运算
5.1 对象的字符串表示形式
5.1.1 重写ToString方法
5.1.2 扩展方法
5.2 字符串的串联与拆分
5.2.1 使用+运算符串联字符串
5.2.2 使用Join方法拼接字符串数组
5.2.3 使用Concat方法创建字符串
5.2.4 使用StringBuilder类创建字符串
5.2.5 使用Split方法拆分字符串
5.3 转义字符
5.4 英文字母的大小写转换
5.5 Parse和TryParse方法
5.6 查找和修改字符串
5.6.1 查找索引
5.6.2 存在性查找
5.6.3 字符串的增、删、改
5.6.4 填充字符串
5.7 格式化字符串
5.7.1 IFormatProvider接口
5.7.2 区域性相关的信息
5.7.3 字符串格式化
5.8 字符串复合格式化
5.9 字符串内插
5.10 生成随机数
5.11 Math类与常用的数学运算
5.12 常见的时间计算
第6章 类型转换
6.1 隐式转换
6.2 显式转换
6.3 可以为null的值类型
6.4 引用类型的兼容性转换
6.5 类型转换帮助器
6.6 自定义转换
6.7 使用is运算符进行类型转换
第7章 泛型、集合与变体
7.1 泛型
7.1.1 泛型类
7.1.2 泛型接口
7.1.3 泛型与类型成员
7.1.4 泛型与委托
7.1.5 泛型约束
7.2 集合
7.2.1 普通集合
7.2.2 泛型集合
7.2.3 字典
7.3 自定义排序
7.4 变体
7.4.1 协变与逆变
7.4.2 类型参数的输入与输出
7.4.3 协变与逆变的判断技巧
第8章 纠错与单元测试
8.1 实时纠正语法错误
8.2 代码调试
8.2.1 断点法
8.2.2 输出信息法
8.3 断言
8.4 使用日志文件
8.5 异常处理
8.6 单元测试
第9章 匿名方法与Lambda表达式
9.1 匿名方法
9.2 Lambda表达式
9.2.1 用于赋值
9.2.2 用于参数传递
9.2.3 弃元与Lambda表达式
第10章 集成化查询
10.1 LINQ基本语法
10.1.1 对查询结果类型的巧妙处理
10.1.2 延迟执行与强制立即执行
10.2 筛选
10.3 排序
10.4 分组
10.5 更复杂的查询
10.5.1 动态创建类型
10.5.2 联合查询
10.5.3 嵌套查询
第11章 Windows窗体应用程序
11.1 Windows窗体应用程序的基本结构
11.1.1 客户区域
11.1.2 控件
11.1.3 应用程序项目
11.1.4 Windows消息循环
11.1.5 创建一个Windows窗体应用程序
11.2 ApplicationContext类
11.3 窗体设计器
11.4 控件的基类——Control
11.4.1 示例:设置控件的位置和大小
11.4.2 示例:设置控件的前景色和背景色
11.4.3 示例:调整控件的Z顺序
11.5 常规控件
11.5.1 共享事件处理程序
11.5.2 制作“用户登录”窗口
11.5.3 CheckBox与RadioButton示例
11.5.4 使用ListBox控件呈现对象列表
11.5.5 自行绘制列表控件的项
11.5.6 组合框
11.5.7 TextBox的自动完成功能
11.5.8 多视图列表
11.5.9 图像呈现控件
11.5.10 实时报告进度
11.5.11 选择日期和时间
11.5.12 规范用户输入
11.6 容器控件
11.6.1 在容器内部显示滚动条
11.6.2 分组面板
11.6.3 网格布局面板
11.6.4 选项卡
11.6.5 自动排列内容的面板
11.7 工具栏和菜单
11.7.1 工具栏
11.7.2 菜单栏
11.7.3 上下文菜单
11.7.4 自定义承载控件
11.8 对话框
11.8.1 “打开文件”和“保存文件”对话框
11.8.2 字体选择对话框
11.8.3 颜色选择对话框
11.8.4 自定义对话框
11.9 用户控件
11.10 自定义控件
第12章 WPF应用程序
12.1 WPF应用程序项目结构
12.2 XAML基础
12.2.1 XAML命名空间
12.2.2 代码隐藏
12.2.3 标记扩展
12.2.4 内容属性
12.3 依赖项属性
12.3.1 定义和使用依赖项属性
12.3.2 使用元数据
12.3.3 使用已注册的依赖项属性
12.3.4 只读的依赖项属性
12.3.5 附加属性
12.4 路由事件
12.4.1 路由策略
12.4.2 注册路由事件的类处理程序
12.5 认识WPF控件
12.5.1 Control类
12.5.2 内容控件
12.5.3 输入控件
12.6 数据绑定与视图呈现
12.6.1 用于数据绑定的XAML扩展标记
12.6.2 使用INotifyPropertyChanged接口
12.6.3 上下文绑定
12.6.4 绑定转换器
12.6.5 数据集合控件
12.6.6 数据模板
12.6.7 数据视图
12.6.8 ObservableCollection<T>集合
12.7 布局
12.7.1 Panel类
12.7.2 网格布局
12.7.3 栈布局
12.7.4 停靠面板
12.7.5 绝对定位
12.7.6 自动换行
12.7.7 Z顺序
12.8 用户控件与自定义控件
12.9 样式与资源
12.9.1 样式中的触发器
12.9.2 资源的有效范围
12.9.3 合并资源字典
12.9.4 静态资源与动态资源
12.10 图形
12.10.1 Shape类
12.10.2 基本图形
12.11 动画
12.11.1 演示图板
12.11.2 简单动画与关键帧动画
第13章 异步编程
13.1 为什么要使用异步编程
13.2 使用Thread类进行异步编程
13.3 线程锁
13.4 并行任务
13.4.1 启动简单的并行任务
13.4.2 Task与Task<TResult>类
13.4.3 创建可取消的Task
13.5 async和await关键字
13.6 ThreadLocal<T>
13.7 AsyncLocal<T>
13.8 通道
13.8.1 Channel<T>
13.8.2 ChannelWriter<T>与ChannelReader<T>
13.8.3 一个简单的示例
13.8.4 背压模式
第14章 系统信息管理
14.1 管理进程
14.1.1 管理正在运行的进程
14.1.2 启动新进程
14.1.3 重定向输入/输出流
14.2 管理服务
14.3 WMI查询
14.4 读取系统参数
14.4.1 Environment类
14.4.2 SystemInformation类
14.4.3 用于WPF的系统信息类
14.5 写入事件日志
第15章 文件与流
15.1 创建和删除目录
15.2 创建和删除文件
15.3 流
15.3.1 读写文件
15.3.2 内存流
15.4 内存映射文件
15.5 监控文件系统的变化
15.6 独立存储
15.7 压缩与解压缩
第16章 序列化与反序列化
16.1 二进制序列化
16.2 XML序列化
16.2.1 简单实现XML序列化和反序列化
16.2.2 自定义XML文档的节点
16.3 数据协定
16.4 JSON序列化
16.5 System.Text.Json
16.5.1 JsonSerializer
16.5.2 自定义转换器
16.5.3 自定义属性名称
第17章 程序集与反射
17.1 类库
17.2 反射技术基础
17.2.1 动态加载程序集
17.2.2 获取类型信息
17.2.3 动态创建类型实例
17.2.4 动态调用类型成员
第18章 网络编程
18.1 Socket编程
18.1.1 Socket类
18.1.2 TcpListener类与TcpClient类
18.1.3 UdpClient类
18.2 HTTP通信
18.2.1 HttpWebRequest类与HttpWebResponse类
18.2.2 WebClient类
18.2.3 HttpClient类
18.3 获取网络接口信息
18.4 向目标计算机发送Ping命令
18.5 用SMTP发送电子邮件
第19章 互操作性
19.1 调用Win32 API函数
19.2 调用Linux系统中的库函数
第20章 综合实例
20.1 照片面积计算器
20.1.1 数据模型准备
20.1.2 让用户选择照片文件
20.1.3 计算所选照片的总面积
20.1.4 语音朗读计算结果
20.1.5 实现日志文件的写入
20.2 文件加密与解密工具
20.2.1 密码的处理
20.2.2 提取Key和IV
20.2.3 加密与解密
更新时间:2023-08-04 18:22:53