明明白白学C#

明明白白学C#

介绍:在C#语言学习过程中,由于语言和文化差异,大家往往无法正确理解编程语言,造成编程停留在简单的Ctrl+C、Ctrl+V的模式。本教程从C#语言本质和编程理念上入手,详细讲解什么是编程,如何编程,帮助大家真正掌握C#语言,跨入编程的殿堂。

 明明白白学C#

明明白白学C#

300下

 

注意:为了答谢大家的关注,《明明白白学C#上册》已经全部分享至网络中,只需要大家自行寻找即可!!如果不想自行寻找,想购《明明白白学C#上册》买电子版只需拍“一元电子书”(PDF格式)即可。如果想购买纸质打印版可选择“打印版”即可!!!
试读文档下载:

第五章地址:http://pan.baidu.com/s/1bnnMAGv

第六章地址:http://pan.baidu.com/s/1bnD5cBH

注意:如有不明白的地方,可以联系QQ:2950605613

前言

C#语言是微软推出的一种面向对象程序开发语言。作为微软的主力语言,经过十多年的推广,现在已经成为主流语言之一。现在C#的应用领域,从原有的Windows普通程序开发和ASP.NET网站开发,已经扩展跨平台的游戏开发(Unity)、Android和iPhone手机应用开发(Xamarin)等领域。

在C#语言学习过程中,由于语言和文化差异,大家往往无法正确理解编程语言,造成编程停留在简单的Ctrl+C、Ctrl+V的模式。本教程从C#语言本质和编程理念上入手,详细讲解什么是编程,如何编程,帮助大家真正掌握C#语言,跨入编程的殿堂。

1.学习所需的系统和工具

安装Windows 7操作系统

安装Visual Studio 2010

2.学习建议

大家学习之前,可以致信到xxxxxxxxxx,获取相关的资料和软件。如果大家在学习过程遇到问题,也可以将问题发送到该邮箱。我们尽可能给大家解决。

目录
第0章 准备工作 1
0.1 C#是什么 1
0.1.1 什么是语言 1
0.1.2 什么是编程语言 2
0.1.3 编程语言的分类 2
0.1.4 什么是C#编程语言 3
0.2 C#可以做什么 3
0.2.1 开发普通软件 4
0.2.2 开发网站 4
0.2.3 开发游戏–Unity 5
0.2.4 开发iOS/Android/Window Phone手机应用App 5
0.3 如何学习C# 6
0.3.1 搭建开发环境 6
0.3.2 建立第一个程序–Hello World 10
0.3.3 重要术语回顾 13
0.3.3 后续学习的路 13
第1章 数据表示 14
1.1 数据的直观表示–字面量 14
1.1.1 整型字面量 14
1.1.2 浮点型字面量 16
1.2 文本字面量 16
1.2.1 字符和字符串的写作规范 17
1.2.2 特殊的字符和字符串–转义字符 17
1.2.3 更全面的表达方式–ASCII表 18
1.2.4 避免转义字符–@ 19
1.2.5 字符串长度 19
1.3 数据的指代表示–变量 20
1.3.1 为什么使用指代表示 20
1.3.2 C#的命名规范 21
1.3.3 对变量命名 22
1.4 数据类型 23
1.4.1 数值类型 23
1.4.2 文本类型 24
1.4.3 其他类型 25
1.5 定义一个变量 25
1.6 一种特殊的变量–常量 25
1.7 小结 26
第2章 变量和数值关联 27
2.1 赋值 27
2.1.1 静态赋值–固定值 27
2.1.2 动态赋值–可变值 27
2.2 验证变量与数值的关联 28
2.2.1 验证的手段 28
2.2.2 验证整数赋值 30
2.2.3 验证实数赋值 31
2.2.4 验证文本赋值 33
2.3 总结数据转换规律 34
2.3.1 自动转换 34
2.3.2 强制转换 36
2.4 小结 37
第3章 运算–运算符与表达式 38
3.1 表达式 38
3.2 简单赋值运算符 39
3.3 算术运算符 39
3.3.1 写作规范 39
3.3.2 算术运算符 40
3.3.3 算术运算中的特殊情况 41
3.4 特殊的算术运算符 43
3.4.1 操作数为1的特殊运算–自增自减运算 43
3.4.2 操作数为2的特殊运算–移位运算 46
3.4.3 位逻辑运算符 48
3.4.4 复合的赋值运算符 51
3.5 其他运算符 53
3.6 运算符的优先级和结合顺序 53
3.6.1 运算符的优先级 53
3.6.2 结合顺序 55
3.7 小结 55
第4章 语句和语句块 56
4.1 语句 56
4.1.1 如何构成语句 56
4.1.2 语句的种类 57
4.1.3 特殊的语句 59
4.2 语句块的构成与作用 60
4.2.1 语句块的构成 60
4.2.2 使用语句块的好处 62
4.2.3 局部变量 62
4.3 语句的执行顺序 63
4.3.1 顺序执行的执行过程 63
4.3.2 单步调试 64
4.4 选择执行 67
4.4.1 选择执行的依据–条件 67
4.4.2 单值条件表达式 68
4.4.3 双值条件表达式 68
4.4.4 多条件表达式 69
4.5 选择执行的种类 71
4.5.1 单选择if 71
4.5.2 双选择if…else 73
4.5.3 多选择if…else…if 74
4.5.4 switch语句 76
4.6 循环执行 81
4.6.1 为什么要使用循环 81
4.6.2 当型循环while 82
4.6.3 直到型循环 84
4.6.4 更安全的循环–for循环 86
4.7 跳转语句 87
4.7.1 continue语句只适用于循环 88
4.7.2 break语句可用于任何封闭的代码 90
4.8 多层嵌套语句 91
4.8.1 选择语句嵌套 91
4.8.2 循环语句嵌套 93
4.8.3 深层嵌套可以使用goto语句 94
4.9 局部变量 95
4.9.1 局部变量的声明 96
4.9.2 局部变量的作用域和生存周期 97
4.9 小结 98
第5章 函数 99
5.1 为什么有函数 99
5.1.1 拆分代码 99
5.1.2 简化代码 102
5.2 函数的组成 104
5.2.1 语句块标识–函数名 104
5.2.2 语句块构成–函数体 105
5.2.3 语句块结果–返回值 105
5.2.4 定义一个函数 108
5.3 函数的使用 109
5.4 函数通用化–参数 111
5.4.1 为什么有参数 111
5.4.2 普通参数–传值 114
5.4.3 引用传递 116
5.4.4 传出参数 118
5.5 特殊的函数 120
5.5.1 Main()函数 120
5.5.2 函数的重载 123
5.6 可供多个函数调用的变量 124
5.7 复杂的函数调用 125
5.6.1 递归调用 125
5.6.2 嵌套调用 128
5.8 小结 129
第6章 “类” 130
6.1 为什么需要类 130
6.1.1 简洁代码 130
6.1.2 大项目的分工合作的问题 133
6.1.3 标识符命名的问题 134
6.2 如何划分类 135
6.3 如何定义类 137
6.3.1 代码段标识–类名 138
6.3.2 代码段–类体 139
6.3.3 定义一个类 140
6.3.4 Main()的归属地 141
6.4 类的使用 141
6.4.1 调用类自身的成员 141
6.4.2 调用另一个类的成员 144
6.5 类之间的成员访问–访问修饰符 145
6.5.1 只有自己能访问–私有 145
6.5.2 谁都能访问–公有 146
6.5.3 为类定义可访问性 147
6.6 特殊的类的定义–嵌套类 152
6.6.1 嵌套类的定义和使用方法 152
6.6.2 嵌套类的访问权限 155
6.6.3 总结 157
6.7 小结 157
第7章 对象 1
7.1 为什么要使用对象 1
7.2 如何定义对象 4
7.2.1 为对象命名 4
7.2.2 定义一个对象 5
7.2.3 对象和类的区别 5
7.3 程序中成员的归属 6
7.3.1 字段的归属 6
7.3.2 方法的归属 7
7.4 如何使用对象 8
7.4.1 使用对象操作字段 8
7.4.2 使用对象操作方法 9
7.4.3 特殊的对象指代–this 10
7.5 特殊的类方法 12
7.5.1 构造方法 12
7.5.2 析构方法 19
7.5.3 比较构造方法与析构方法 20
7.6 小结 20
第8章 属性 21
8.1 属性的由来 21
8.2 属性的构成 23
8.2.1 属性的命名 23
8.2.2 属性的类型和访问修饰符 24
8.2.3 属性的机制 24
8.2.4 定义一个属性 26
8.3 属性的应用 27
8.3.1 判断赋值正确性 27
8.3.2 只读/只写属性 29
8.3.3 方便代码后期维护 31
8.3.4 同步处理相关字段 33
8.3.5 自动实现属性 34
8.3.6 属性不绑定字段 36
8.4 小结 37
第9章 继承 38
9.1 继承的由来 38
9.1.1 代码重用、简化代码 38
9.1.2 扩展功能 40
9.1.3 继承的定义格式 42
9.2 介于private与public之间的访问权限–protected 43
9.3 子类从父类得到了什么 45
9.3.1 字段的可继承性 45
9.3.2 方法的可继承性 48
9.3.3 属性的可继承性 52
9.3.4 父类的静态成员 56
9.4 子类从父类得不到构造方法和析构方法 57
9.4.1 子类不能继承构造方法 57
9.4.2 隐式调用基类构造方法 58
9.4.3 显式调用基类构造方法 59
9.4.4 建议为基类声明无参构造方法 62
9.4.5 析构方法 63
9.5 继承的特点 64
9.5.1 单继承 64
9.5.2 可传递 65
9.5.3 可添、不可删 66
9.6 继承的面向对象特性–重写 66
9.6.1 类的虚拟成员 66
9.6.2 重写虚成员 73
9.6.3 比较方法的重载、重写与隐藏 76
9.7 小结 77
第10章 C#的特殊成员 78
10.1 继承链引发的问题 78
10.2 虚方法在继承链中的作用 80
10.2.1 想方设法解决继承链引发的问题 81
10.2.2 密封方法–取消成员的虚效果 84
10.2.3 密封类 87
10.3 继承中父类对子类添加限制 89
10.3.1 部分限制–抽象方法 89
10.3.2 限制升级–抽象类 92
10.3.3 使用抽象类 94
10.3.4 抽象类总结 97
10.4 抽象类的升级–接口 98
10.4.1 为什么要使用接口 98
10.4.2 接口的定义 98
10.4.3 接口的实现–接口继承接口 101
10.4.4 接口的实现–类继承接口 103
10.4.5 比较接口和抽象类 109
10.5 继承中的特殊情况–运算符重载 110
10.5.1 为什么重载运算符 110
10.5.2 如何重载运算符 110
10.5.3 一元运算符的重载 111
10.5.4 二元运算符的重载 115
10.5.5 转换运算符的重载 121
10.5.6 不能重载的运算符 124
10.6 小结 126
第11章 委托和事件 127
11.1 为什么使用委托 127
11.2 委托的声明和使用 128
11.2.1 声明委托 128
11.2.2 创建委托对象 130
11.2.3 向委托注册方法 131
11.2.4 使用委托 133
11.2.5 匿名方法 135
11.3 委托的合并与拆分 138
11.3.1 合并委托 139
11.3.2 合并委托的条件 144
11.3.3 拆分委托 146
11.4 委托的特殊使用–用于回调方法 147
11.5 匹配不精准–委托协变和逆变 148
11.6 一种特殊的委托–事件 152
11.6.1 事件的声明 152
11.6.2 订阅事件与取消订阅事件 153
11.6.3 引发事件 155
11.6.4 使用事件 156
11.7 小结 161
第12章 特殊的系统类–数组和字符串 162
12.1 如何定义数组 162
12.1.1 初识数组 162
12.1.2 Array类 163
12.1.3 定义一个数组 164
12.1.4 初始化数组 166
12.1.5 遍历数组 172
12.2 数组有哪些类型 176
12.2.1 一维数组 176
12.2.2 二维数组 176
12.2.3 多维数组 181
12.2.4 交错数组 183
12.3 数组的特殊使用 192
12.3.1 作为参数 192
12.3.2 作为返回值 201
12.4 静态数组 203
12.4.1 静态数组的常用属性概览 203
12.4.2 静态数组的常用方法概览 203
12.4.3 获取数组的秩 204
12.4.4 获取数组长度 205
12.4.5 获取元素的索引 211
12.4.6 获取或设置元素的值 213
12.4.7 清除数组元素 216
12.4.8 复制数组 217
12.4.9 复制数组元素 219
12.4.10 反转数组元素 222
12.4.11 对数组排序 224
12.5 动态数组 225
12.5.1 如何定义一个动态数组 226
12.5.2 常用属性和方法 226
12.5.3 如何添加、删除元素 227
12.5.4 清空数组 233
12.6 字符串的本质–String对象 234
12.6.1 了解String类 235
12.6.2 String类提供的字段、属性和方法 235
12.6.3 获取字符串长度 236
12.6.4 插入字符串 237
12.6.5 移除字符串 238
12.6.6 替换字符串 239
12.6.7 连接字符串 241
12.6.8 获取子串 243
12.6.9 格式化字符串 244
12.7 可变字符串 250
12.7.1 了解StringBuilder类 250
12.7.2 StringBuilder类提供的属性和方法 251
12.7.3 插入字符串 252
12.7.4 追加字符串 253
12.7.5 移除字符串 255
12.9 小结 256
第13章 结构和枚举 257
13.1 认识结构 257
13.1.1 为什么要用结构 257
13.1.2 如何定义结构 258
13.1.3 结构可以包含的成员 260
13.1.4 如何使用结构 263
13.2 结构的继承特性 265
13.3 结构和类的区别 268
13.4 枚举 271
13.4.1 为什么要使用枚举 271
13.4.2 定义枚举 272
13.4.3 如何使用枚举 274
13.4.4 枚举的基类Enum 276
13.4.5 枚举的分类 279
13.5 使用枚举需要注意一些问题 281
13.5.1 尽量不给枚举元素提供显式的值 282
13.5.2 尽量使得零是枚举的有效值 282
13.6 小结 285
第14章 索引器 286
14.1 数组的启发 286
14.1.1 只关注值 286
14.1.2 批量处理 287
14.2 构建简单索引器 289
14.2.1 为什么要使用索引器 289
14.2.2 索引器的构成 290
14.2.3 数组字段应用 293
14.2.4 非数组字段应用 295
14.3 构建复杂索引器 298
14.3.1 字符串索引 299
14.3.2 多维索引器 301
14.3.3 设定索引器的上下限 304
14.4 索引器的扩展应用 307
14.4.1 索引器的重载 308
14.4.2 接口索引器 310
14.4.3 索引器在继承中的应用 317
14.5 索引器对比 321
14.5.1 索引器VS数组 322
14.5.2 索引器VS属性 322
14.5 小结 322

Comments are closed.