第1章 C#程序设计基础 1
问1 什么是C# 1
问2 什么是NET 2
问3 C#语言有哪些主要功能 3
问4 C#语言有哪些主要特点 4
例1 安装Visual Studio.NET 5
例2 编写控制台Hello Word程序 7
问5 C#和Visual Studio有哪些版本 10
例3 C#程序结构实例讲解 10
例4 C#程序的入口 11
问6 什么是程序区块 12
例5 C#程序的注释方法 13
问7 什么是命名空间 14
例6 using的用法 15
例7 学习使用Visual Studio的常用功能 16
第2章 C#入门 19
问8 C#基本语句包含哪些数据类型 19
问9 简单数据类型有哪些 19
例8 结构类型变量的使用 22
问10 引用类型有哪些 24
问11 C#中如何定义变量 26
问12 C#中如何定义常量 28
问13 什么是装箱 29
问14 什么是拆箱 29
问15 什么是表达式 30
问16 C#操作符有哪些 30
问17 什么是算术表达式 31
例9 递增运算示例 32
例10 除法运算示例 32
问18 如何对变量赋值 33
例11 理解复合赋值运算符 34
问19 什么是关系运算 34
例12 is操作符的使用 35
问20 什么是逻辑表达式 36
例13 求解逻辑表达式的值 36
问21 C#中的特殊操作符有哪些 37
例14 自增/自减操作符的使用之一 37
例15 自增/自减操作符的使用之二 38
例16 typeof操作符的使用 38
问22 C#有哪几种语句 39
问23 什么是程序的顺序结构 39
例17 输入半径,求圆的周长和面积 40
问24 在C#中如何实现数据的输入/输出 41
例18 通过Read()方法接收单个字符 41
例19 通过ReadLine()方法接收一个字符串 42
例20 基本的数据输出 44
例21 一个简单的加法计算器程序 44
第3章 选择和循环结构 46
问25 什么是程序的选择结构 46
问26 如何正确使用if语句 46
例22 If语句使用举例 48
例23 求分段函数的值 49
例24 任意输入3个整数,比较大小并输出其中的最大值 50
例25 计算任意三角形的面积 51
问27 switch语句是如何执行的 52
例26 用switch语句输出分数对应的等级制级别 52
例27 编制程序实现能完成简单加、减、乘、除、求余的运算器 54
问28 什么是程序的循环结构 56
问29 while循环结构是如何执行的 56
例28 使用while循环结构计算n! 56
问30 do...while循环结构是如何执行的 57
问31 while语句和do...while语句是等同的吗 58
例29 用do...while循环语句计算1+2+3+4+5+…+99+100 58
例30 猴子吃桃子 59
例31 统计各种字符的个数 60
问32 for循环结构是如何执行的 61
问33 for循环条件中的表达式哪些可以省略 62
例32 使用for循环结构计算n! 62
问34 什么是死循环 62
问35 如何理解for循环结构的多种省略写法 63
例33 求水仙花数 66
例34 for循环的嵌套使用 67
问36 类似于while(true)循环是“死循环”吗 68
问37 穷举法的基本思想是什么 69
例35 一元钱的分解问题 70
问38 foreach语句是如何执行的 71
例36 对数组使用foreach语句 72
问39 什么是跳转语句 73
问40 如何使用break语句 73
问41 如何使用continue语句 74
例37 求任意5个非零整数中的正数之和 75
问42 如何使用return语句 75
例38 return语句示例 76
例39 判断一个整数是否为素数 76
第4章 类和对象 78
问43 什么是面向对象的程序设计 78
问44 什么是类 79
问45 类和对象有何区别 79
问46 C#中如何定义和使用类 79
例40 类的声明 80
问47 C#中类的修饰符有哪些 81
问48 什么是基类 81
例41 抽象类的实例 82
问49 类成员有哪些 83
例42 类的成员使用举例 83
问50 类成员声明的原则有哪些 85
问51 类成员的访问修饰符是什么 86
例43 类成员访问修饰符的用法 86
问52 什么是方法 87
例44 值参数应用举例 89
例45 引用参数应用举例 90
例46 输出参数应用举例 90
问53 什么是Main()方法 91
问54 构造函数有何作用 92
例47 构造函数的演示程序 92
例48 构造函数中参数的传递 93
问55 析构函数有何作用 95
例49 析构函数的演示程序 95
例50 析构函数调用顺序演示 96
问56 如何使用this访问 98
例51 在构造函数中this用于限定被相同名称隐藏的成员 98
例52 this用于将当前对象作为返回值使用 99
例53 this用于将当前对象作为参数传递 99
问57 怎么使用base访问 100
例54 base访问调用函数成员被继承了的实现 101
问58 静态成员和实例成员的区别是什么 101
例55 静态成员和实例成员的应用举例 102
问59 什么是常数 103
问60 什么是字段 103
问61 什么是只读字段 104
例56 对常数使用静态只读字段 104
问62 什么是继承 105
问63 使用类继承的注意事项 105
问64 哪种情况下可以使用类的继承 106
例57 类继承的实例 106
例58 类继承的综合实例 108
第5章 方法 111
问65 如何声明方法 111
例59 方法示例程序 112
问66 方法有哪些修饰符 112
问67 静态方法和实例方法的区别是什么 113
问68 如何调用方法 113
例60 静态方法的调用 114
例61 在静态方法中访问实例成员 114
问69 什么是虚拟方法 115
例62 虚拟方法和非虚拟方法的区别 115
问70 什么是重写方法 116
例63 重写基类的方法 117
例64 屏蔽基类的方法 118
问71 什么是密封方法 118
例65 密封方法的实例 119
问72 什么是抽象方法 120
问73 方法有哪些返回类型 120
例66 方法由return语句得到返回值 120
问74 方法有哪些参数 121
例67 数组参数应用举例 122
问75 什么是方法的重载 122
例68 方法重载举例 123
例69 构造函数的重载 124
第6章 属性和索引器 125
问76 什么是属性 125
问77 什么是属性修饰符 126
问78 什么是访问器 126
例70 只读属性示例程序 127
例71 可读可写属性示例程序 128
例72 重写属性的实例 130
例73 派生属性隐藏被继承的属性 132
问79 属性与字段有什么区别 133
问80 静态属性和实例属性的区别是什么 133
例74 静态属性简单示例 133
例75 利用静态属性访问获得相应学生信息 134
问81 什么是索引器 135
问82 如何定义索引器 136
例76 索引器的使用 136
例77 多索引器的使用 137
第7章 委托 140
问83 什么是委托 140
例78 C#“Hello World!”委托版 140
问84 委托有何特点 142
例79 C#“Hello World!”委托扩展版之给方法签名 143
例80 C#“Hello World!”委托扩展版之自定义方法 144
问85 多路广播有何特性 145
问86 怎样组合多路广播委托 146
例81 “Hello World!”委托扩展版之多路广播 146
例82 “Hello World!”委托扩展版之多路广播详解 148
例83 “Hello World!”委托扩展版之取消绑定 149
问87 何时使用委托 150
问88 委托中的命名方法是什么 150
例84 命名方法简单示例 151
例85 命名方法综合示例 152
问89 什么是委托中的匿名方法 153
例86 匿名方法示例 154
问90 什么是委托的相等性 155
例87 委托综合示例 156
第8章 事件 160
问91 什么是事件 160
问92 事件有何特点 160
问93 事件处理程序的一般步骤是什么 161
问94 如何声明事件 161
例88 简单事件声明示例 162
问95 如何引发事件 163
问96 如何订阅事件 163
问97 所有委托都可以应用到事件中吗 164
例89 事件封装示例 165
问98 EventHandler是什么 167
问99 如何声明事件访问器 168
例90 创建响应事件的控件 169
问100 如何实现事件的可靠编程 171
例91 使用字典存储事件实例 172
问101 什么是GUI事件 174
例92 事件机制剖析之鼠标单击事件 175
例93 事件机制剖析之KeyPress事件 177
例94 常用事件之鼠标按下、释放和拖动事件 179
例95 常用事件之键盘按下和释放事件 180
例96 常用事件之焦点事件 181
第9章 接口和异常处理 183
问102 什么是接口 183
问103 接口和类有什么不同 184
问104 接口和类如何选择使用 184
问105 如何定义接口 184
例97 接口基本用法示例 185
问106 接口成员有哪些 187
例98 接口属性成员访问举例 188
问107 什么是接口成员的全权名 190
问108 接口如何实现 191
例99 接口实现举例 192
例100 多个类实现同一接口举例 195
例101 在同一类中实现多个接口 196
问109 如何实现接口的查询 198
例102 使用is运算符实现查询 198
例103 使用as运算符实现查询 199
问110 什么是异常处理 201
问111 如何进行异常处理 201
第10章 基本控件 204
问112 什么是控件的通用属性 204
问113 什么是窗体 204
例104 创建特透明窗体 206
例105 创建不规则窗体 207
问114 常用的文本编辑控件有哪些 209
例106 利用文本标签控件进行文本显示和生成超链接 209
例107 如何利用TextBox控件进行文本输入 211
例108 利用RichTextBox设置输入文本关键字的颜色 212
问115 常用的选择控件有哪些 215
问116 CheckBox和RadioButtion选择控件如何使用 215
例109 利用CheckBox和RadioButtion控件显示个人信息 215
问117 常见的列表控件有哪些 217
例110 对列表控件ListBox进行全选和反选 218
例111 使用ListView列表控件显示数据 220
问118 如何使用TreeView控件 223
例112 使用TreeView对结点实现增删操作 225
例113 使用TreeView加载XML文件 229
第11章 应用程序常规控件 233
问119 什么是菜单,如何创建菜单 233
例114 菜单控件的使用 234
问120 什么是右键菜单 235
例115 弹出菜单的创建 235
问121 什么是工具栏控件 237
例116 工具栏的创建 237
问122 什么是状态栏 238
例117 状态栏控件的使用 238
问123 常见的对话框有哪些 240
问124 什么是滚动条控件 246
例118 滚动条控件的使用 246
问125 什么是进程条控件 247
例119 进程条控件的使用 247
问126 什么是跟踪条控件 248
例120 跟踪条控件的使用 249
问127 什么是计时器控件 250
例121 模拟跑表计时器 250
第12章 容器类控件 252
问128 什么是面板控件 252
例122 面板控件的使用 252
问129 什么是分组控件 254
例123 分组控件的使用 254
问130 什么是分页控件 256
例124 分页控件的使用 256
第13章 输入/输出类 259
问131 怎样理解文件和流的概念 259
问132 什么是Stream类 259
问133 什么是File类? 260
例125 File类的使用 262
例126 Filelnfo类的使用 263
问134 什么是StreamReader类 263
问135 什么是StreamWriter类 264
例127 创建一个文本文件 265
例128 从文本文件中读出内容 266
例129 向文本文件追加内容 267
问136 什么是BinaryReader类 267
问137 什么是BinaryWriter类 268
例130 二进制文件的写入 269
例131 二进制文件操作综合 270
问138 什么是Directory类 273
例132 创建子目录 274
例133 删除子目录 275
问139 什么是Path类 276
例134 利用Path类实现对路径的信息处理 277
问140 什么是异步文件操作 278
例135 异步文件的读/写操作 279
第14章 数据库操作 283
问141 什么是ADO.NET 283
问142 什么是DataSet,它有什么作用 284
问143 DataSet和DataReader有什么区别 287
问144 使用DataTable如何存储数据表 288
例136 使用DataTable存储数据表 288
问145 什么是BindingSource,如何绑定数据 290
例137 使用BindingSource绑定数据 291
问146 如何使用BindingNavigator进行数据导航 293
例138 使用BindingNavigator完成数据导航功能 294
问147 数据访问的一般步骤是什么 295
例139 简单数据访问示例 298
问148 DataGridView具有什么功能 300
例140 利用DataGridView控件实现单元格合并 306
例141 利用DataGridView隔行显示不同的颜色 308
例142 在DataGridView中集成Combox 308
第15章 综合案例 313
问149 BitArray类有何优势 313
例143 读取特定文件后用BitArray类存储并使用 313
问150 C#中是否能获取外部命令的执行结果 315
例144 调用Windows下的命令并将结果显示在图形界面上 316
问151 C#中如何绘图 318
例145 在界面上绘制“七根火柴棍”构成的数字 318
问152 数组真的能简化程序代码吗 321
例146 编写一个计算干支和生肖的图形界面程序 321
问153 随机数有什么作用 323
例147 随机生成单项选择题的答案选项 323
问154 C#如何得到汉字的相关编码 326
例148 编写一个程序查询汉字的机内码、区位码和Unicode编码 326
问155 C#可以帮助用户自动生成代码吗 329
例149 生成一个简单的JavaME程序代码 329
问156 什么是POP3 333
例150 使用POP3协议编写一个接收邮件的客户端程序 333
问157 如何编写基于TCP的聊天室 337
例151 编写基于TCP的聊天室 338
问158 查询数据库时如何让代码更安全 347
例152 用户登录时调用存储过程验证 348
第16章 经典C#面试题集锦 352
题1 string str=null与string str=“”有何区别 352
题2 请简述在.NET中类(class)与结构(struct)的异同 352
题3 C#中有没有运算符重载?能否使用指针 352
题4 Internal修饰符有什么含义 352
题5 对象能否调用静态方法 352
题6 CLR与IL分别是什么含义 352
题7 分析下面的代码,完成填空 353
题8 根据delegate的知识,完成以下控件中代码片段的填写 353
题9 编写一个编程题,实现n的阶乘 354
题10 举例说明private、protected、public、internal修饰符的区别 354
题11 C#中何时使用接口较好?请举例 356
题12 Arraylist和List有什么区别 357
题13 列举ASP.NET页面之间传递值的几种方式 358
题14 DataReader与DataSet有什么区别 358
题15 怎样区分ViewState与Session 359
题16 .NET中有哪些验证控件?请分别举例说明 359
题17 说说ADO.NET中几个数据库处理的核心对象 359
题18 Web Service的特点及作用是什么 359
题19 ASP.NET中的身份验证有几种方法 360
题20 请写出下面程序的运行结果 360
题21 请写出程序的输出结果 361
题22 如何用ADO.NET写一个数据库连接代码 362
题23 写一个编程题,实现一个GRIDVIEW数据绑定并实现数据的增删改 362
题24 如何理解委托 364
题25 如何使用C#的异常处理机制try...catch...finally 364
题26 ADO.NET相对于ADO有何区别和改进 365
题27 在C#中,ref和out的区别是什么及如何使用 366
题28 设计一个缓存应用的编程题,第一次从数据库中读取数据,第二次从缓存中读取数据 366
题29 如何编写一个简单的三层架构的应用程序 367
题30 简述String和StringBuilder这两种类的区别及应用 368
题31 在什么情况下要使用泛型 369
题32 试用冒泡法得出数组中的最大值 371
题33 根据对简单工厂模式的理解,写一段实现登录功能的代码 371