单元1 我的**个C#程序 1
1.1 案例描述 2
1.2 知识链接 2
1.2.1 .NET概述 2
1.2.2 .NET Framework 3
1.2.3 开发环境和C#语言 4
1.2.4 使用Visual Studio创建项目 9
1.2.5 C#程序结构 12
1.2.6 命名空间 13
1.2.7 程序的运行与调试 13
1.2.8 了解MSDN 14
1.3 案例分析与实现 15
1.3.1 案例分析 15
1.3.2 案例实现 15<p>单元1 我的**个C#程序 1</p> <p>1.1 案例描述 2</p> <p>1.2 知识链接 2</p> <p>1.2.1 .NET概述 2</p> <p>1.2.2 .NET Framework 3</p> <p>1.2.3 开发环境和C#语言 4</p> <p>1.2.4 使用Visual Studio创建项目 9</p> <p>1.2.5 C#程序结构 12</p> <p>1.2.6 命名空间 13</p> <p>1.2.7 程序的运行与调试 13</p> <p>1.2.8 了解MSDN 14</p> <p>1.3 案例分析与实现 15</p> <p>1.3.1 案例分析 15</p> <p>1.3.2 案例实现 15</p> <p>习题一 16</p> <p>单元2 变量与数据类型 17</p> <p>2.1 案例描述 18</p> <p>2.2 知识链接 18</p> <p>2.2.1 数据类型 18</p> <p>2.2.2 变量与常量 25</p> <p>2.2.3 数据类型间的转换 28</p> <p>2.2.4 DateTime 30</p> <p>2.3 案例分析与实现 32</p> <p>2.3.1 案例分析 32</p> <p>2.3.2 案例实现 32</p> <p>2.4 拓展训练 34</p> <p>2.4.1 拓展实训1:使用变量存储</p> <p>一部手机的信息 34</p> <p>2.4.2 拓展实训2:数字加密器 34</p> <p>习题二 35</p> <p>单元3 运算符和表达式 36</p> <p>3.1 案例描述 37</p> <p>3.2 知识链接 37</p> <p>3.2.1 算术运算符与算术表达式 38</p> <p>3.2.2 赋值运算符与赋值表达式 40</p> <p>3.2.3 关系运算符与关系表达式 40</p> <p>3.2.4 逻辑运算符与逻辑表达式 40</p> <p>3.2.5 条件运算符与条件表达式 41</p> <p>3.2.6 运算符的优先级与结合顺序 42</p> <p>3.3 案例��析与实现 42</p> <p>3.3.1 案例分析 42</p> <p>3.3.2 案例实现 43</p> <p>3.4 拓展训练:判断计算是否正确 44</p> <p>习题三 44</p> <p>单元4 顺序和选择结构程序的设计 46</p> <p>4.1 案例描述 47</p> <p>4.2 知识链接 47</p> <p>4.2.1 顺序结构 48</p> <p>4.2.2 if分支 49</p> <p>4.2.3 switch分支 53</p> <p>4.3 案例分析与实现 56</p> <p>4.3.1 案例分析 56</p> <p>4.3.2 案例实现 56</p> <p>4.4 拓展训练:旅游价格计算 57</p> <p>习题四 59</p> <p>单元5 循环结构程序设计 60</p> <p>5.1 案例描述 61</p> <p>5.2 知识链接 61</p> <p>5.2.1 循环结构概述 61</p> <p>5.2.2 while循环 63</p> <p>5.2.3 do-while循环 65</p> <p>5.2.4 for循环 66</p> <p>5.2.5 循环跳转:continue语句 68</p> <p>5.2.6 提前结束循环:break语句 69</p> <p>5.3 案例分析与实现 70</p> <p>5.3.1 案例分析 70</p> <p>5.3.2 案例实现 70</p> <p>5.4 拓展训练 73</p> <p>5.4.1 拓展实训1:直到型循环 73</p> <p>5.4.2 拓展实训2:嵌套循环 73</p> <p>习题五 74</p> <p>单元6 程序调试与异常处理 76</p> <p>6.1 案例描述 77</p> <p>6.2 知识链接 78</p> <p>6.2.1 异常的概念 78</p> <p>6.2.2 Visual Studio中的调试方法 79</p> <p>6.2.3 异常处理 84</p> <p>6.3 案例分析与实现 87</p> <p>6.3.1 案例分析 87</p> <p>6.3.2 案例实现 87</p> <p>6.4 拓展训练:创建用户自定义异常 89</p> <p>习题六 90</p> <p>单元7 数组与集合 92</p> <p>7.1 案例描述 93</p> <p>7.2 知识链接 94</p> <p>7.2.1 数组的定义和使用 94</p> <p>7.2.2 用foreach语句遍历数组 97</p> <p>7.2.3 数组的常用排序算法 97</p> <p>7.2.4 集合类 99</p> <p>7.3 案例分析与实现 103</p> <p>7.3.1 案例分析 103</p> <p>7.3.2 案例实现 104</p> <p>7.4 拓展训练 105</p> <p>7.4.1 拓展实训1:二维数组的</p> <p>使用 105</p> <p>7.4.2 拓展实训2:利用Array进行</p> <p>排序 106</p> <p>习题七 106</p> <p>单元8 类和对象 108</p> <p>8.1 案例描述 109</p> <p>8.2 知识链接 109</p> <p>8.2.1 面向对象的基本思想 109</p> <p>8.2.2 类的声明和成员组织以及访问</p> <p>修饰符 111</p> <p>8.2.3 创建类实例 114</p> <p>8.2.4 类的构造函数和析构函数 115</p> <p>8.3 案例分析与实现 119</p> <p>8.3.1 案例分析 119</p> <p>8.3.2 案例实现 120</p> <p>8.4 拓展训练 121</p> <p>8.4.1 拓展实训1:定义长方</p> <p>体类 121</p> <p>8.4.2 拓展实训2:识别静态</p> <p>成员 122</p> <p>习题八 123</p> <p>单元9 类的方法和属性 125</p> <p>9.1 案例描述 126</p> <p>9.2 知识链接 127</p> <p>9.2.1 方法的定义 127</p> <p>9.2.2 方法的调用 128</p> <p>9.2.3 方法中的参数传递 130</p> <p>9.2.4 方法重载 135</p> <p>9.2.5 属性 137</p> <p>9.3 案例分析与实现 139</p> <p>9.3.1 案例分析 139</p> <p>9.3.2 案例实现 141</p> <p>9.4 拓展训练:设计一个类的定义和</p> <p>封装 143</p> <p>习题九 145</p> <p>单元10 类的继承与多态性 147</p> <p>10.1 案例描述 148</p> <p>10.2 知识链接 149</p> <p>10.2.1 类的继承 149</p> <p>10.2.2 多态性:虚方法和重写 155</p> <p>10.2.3 多态性:抽象类 159</p> <p>10.2.4 多态性:接口 161</p> <p>10.3 案例分析与实现 164</p> <p>10.3.1 案例分析 164</p> <p>10.3.2 案例实现 165</p> <p>10.4 拓展训练:从接口继承 167</p> <p>习题十 170</p> <p>单元11 委托与事件 171</p> <p>11.1 案例描述 172</p> <p>11.2 知识链接 172</p> <p>11.2.1 委托和方法 172</p> <p>11.2.2 事件处理 176</p> <p>11.3 案例分析与实现 178</p> <p>11.3.1 案例分析 178</p> <p>11.3.2 案例实现 180</p> <p>11.4 拓展训练:使用委托和事件 182</p> <p>习题十一 184</p> <p>单元12 泛型 186</p> <p>12.1 案例描述 187</p> <p>12.2 知识链接 187</p> <p>12.2.1 泛型的引入 187</p> <p>12.2.2 使用泛型类 190</p> <p>12.2.3 泛型方法 192</p> <p>12.2.4 泛型约束 193</p> <p>12.3 案例分析与实现 196</p> <p>12.3.1 案例分析 196</p> <p>12.3.2 案例实现 197</p> <p>12.4 拓展训练:使用List<T>类 198</p> <p>习题十二 200</p> <p>单元13 Windows编程基础 201</p> <p>13.1 案例描述 202</p> <p>13.2 知识链接 202</p> <p>13.2.1 可视化编程原理与技巧 202</p> <p>13.2.2 Windows窗体 205</p> <p>13.2.3 控件的常用属性、方法和</p> <p>事件 209</p> <p>13.2.4 Button控件 213</p> <p>13.2.5 ListBox控件 213</p> <p>13.2.6 ComboBox控件 217</p> <p>13.2.7 Label控件 217</p> <p>13.2.8 LinkLabel控件 218</p> <p>13.2.9 TextBox控件 219</p> <p>13.2.10 PictureBox控件 220</p> <p>13.2.11 Timer控件 221</p> <p>13.2.12 GroupBox控件 222</p> <p>13.2.13 Panel控件 222</p> <p>13.2.14 RadioButton控件 222</p> <p>13.2.15 CheckBox控件 224</p> <p>13.2.16 TabControl控件 224</p> <p>13.3 案例分析与实现 226</p> <p>13.3.1 案例分析 226</p> <p>13.3.2 案例实现 226</p> <p>13.4 拓展训练:简易计算器的设计与</p> <p>实现 228</p> <p>习题十三 232</p> <p>单元14 Windows编程进阶 233</p> <p>14.1 案例描述 234</p> <p>14.2 知识链接 234</p> <p>14.2.1 RichTextBox控件 234</p> <p>14.2.2 TreeView控件 236</p> <p>14.2.3 MenuStrip控件 240</p> <p>14.2.4 ToolStrip控件 242</p> <p>14.2.5 StatusStrip控件 244</p> <p>14.2.6 OpenFileDialog控件 244</p> <p>14.2.7 SaveFileDialog控件 245</p> <p>14.3 案例分析与实现 246</p> <p>14.3.1 案例分析 246</p> <p>14.3.2 案例实现 246</p> <p>14.4 拓展训练:摇奖程序的设计与</p> <p>实现 248</p> <p>习题十四 252</p> <p>单元15 创建数据库连接与数据操作</p> <p> 命令 254</p> <p>15.1 案例描述 255</p> <p>15.2 知识链接 256</p> <p>15.2.1 数据库基础 256</p> <p>15.2.2 ADO.NET基础 258</p> <p>15.2.3 用Connection对象连接</p> <p>数据库 260</p> <p>15.2.4 用Command对象执行</p> <p>命令 262</p> <p>15.2.5 用DataReader对象读取</p> <p>数据 263</p> <p>15.3 案例分析与实现 265</p> <p>15.3.1 案例分析 265</p> <p>15.3.2 案例实现 265</p> <p>15.4 拓展训练 270</p> <p>15.4.1 拓展实训1:绑定下拉框</p> <p>数据 270</p> <p>15.4.2 拓展实训2:用户注册 274</p> <p>习题十五 276</p> <p>单元16 数据集DataSet与数据绑定</p> <p> 组件 278</p> <p>16.1 案例描述 279</p> <p>16.2 知识链接 280</p> <p>16.2.1 数据集DataSet 280</p> <p>16.2.2 数据适配器DataAdapter 281</p> <p>16.2.3 数据表DataTable 282</p> <p>16.2.4 命令生成器Command</p> <p>Builder 282</p> <p>16.2.5 DataGridView控件 284</p> <p>16.3 案例分析与实现 287</p> <p>16.3.1 案例分析 287</p> <p>16.3.2 案例实现 287</p> <p>16.4 拓展训练 294</p> <p>16.4.1 拓展实训1:销售前台 294</p> <p>16.4.2 拓展实训2:三层架构的设计</p> <p>与实现 300</p> <p>习题十六 308</p> <p>单元17 C#读写文件 309</p> <p>17.1 案例描述 310</p> <p>17.2 知识链接 310</p> <p>17.2.1 System.IO命名空间介绍 310</p> <p>17.2.2 File类的重要方法 311</p> <p>17.2.3 文本文件的读写 313</p> <p>17.2.4 二进制文件的读写 315</p> <p>17.3 案例分析与实现 316</p> <p>17.3.1 案例分析 316</p> <p>17.3.2 案例实现 317</p> <p>17.4 拓展训练:图片查看器 318</p> <p>习题十七 321</p> <p>单元18 网络编程概述 322</p> <p>18.1 案例描述 323</p> <p>18.2 知识链接 323</p> <p>18.2.1 Socket的使用 324</p> <p>18.2.2 Socket连接实例 324</p> <p>18.3 案例分析与实现 329</p> <p>18.3.1 案例分析 329</p> <p>18.3.2 案例实现 329</p> <p>18.4 拓展训练:基于TCP编程的实例 334</p> <p>习题十八 338</p> <p>参考文献 339</p>显示全部信息前 言前 言首先,感谢您翻阅这本书。
本书的背景
在 .NET 被正式发布之前,NGWS这个术语一直被用于微软的某些计划,这些计划旨在创建一个下一代视窗服务的基于因特网的平台(Internet-based platform of Next Generation Windows Services)。
史蒂夫·鲍尔默于2000年指出:“交付一个基于因特网的下一代视窗服务平台是我们公司的重中之重。我们在此谈论的突破包括对编程模型、用户界面、应用程序整合模型、文件系统、新的XML Schema 等的改变。”
作为微软*重要的***工具集,新版Visual Studio 2017旨在帮助开发人员围绕微软核心产品和服务打造****的解决方案。当前Visual Studio 2017已经扩展到Mac平台,这意味着***可以在Mac上使用C#、F#、.NET Core、ASP.NET Core、Xamarin和Unity来搭建应用程序。而C#正是.NET平台主流的开发语言,也是一个现代的、通用的、面向对象的编程语言。因此,它的应用范围十分广泛。<h1>前 言</h1> <p>首先,感谢您翻阅这本书。</p> <div> <h3>本书的背景</h3> </div> <p>在 .NET 被正式发布之前,NGWS这个术语一直被用于微软的某些计划,这些计划旨在创建一个下一代视窗服务的基于因特网的平台(Internet-based platform of Next Generation Windows Services)。</p> <p>史蒂夫·鲍尔默于2000年指出:“交付一个基于因特网的下一代视窗服务平台是我们公司的重中之重。我们在此谈论的突破包括对编程模型、用户界面、应用程序整合模型、文件系统、新的XML Schema 等的改变。”</p> <p>作为微软*重要的***工具集,新版Visual Studio 2017旨在帮助开发人员围绕微软核心产品和服务打造****的解决方案。当前Visual Studio 2017已经扩展到Mac平台,这意味着***可以在Mac上使用C#、F#、.NET Core、ASP.NET Core、Xamarin和Unity来搭建应用程序。而C#正是.NET平台主流的开发语言,也是一个现代的、通用的、面向对象的编程语言。因此,它的应用范围十分广泛。</p> <p>本书由作者将过去的教学经验和实验指导经验整理而成,主要针对大学本科或专科相关专业学生的程序设计学习,亦可供相关的开发人员及爱好者入门学习使用。</p> <div> <h3>本书的特色</h3> </div> <p>编程属于利用抽象概念来思维,通常可以通过简单的例程形象地进行学习。本书采用“案例描述→知识链接→案例分析与实现→拓展实训→习题”这样的编写体例。通过精心选取案例,一改传统案例的枯燥性,挑选更符合应用,而且生动有趣的案例帮助读者提高学习效率。在每个单元中,针对初学者容易忽略、出错,或难于理解的知识点及代码块,采用注意、说明等特别形式**提醒读者。</p> <div> <h3>本书的组织</h3> </div> <p>在学习面向对象技术的过程中,既需要学习编程的抽象概念,又需要培养编程的实际技能,二者都是非常重要的。学习理论知识时,要防止沉迷于语言细节。如果过多地关注细节,就会分散注意力,导致对某些概念“知其然,而不知其所以然。”</p> <p>本书面向爱好 C#的零基础读者,全面讲解C#的基础知识。在实例的选取上注重实用性,内容详尽,难易适中,**突出,降低了读者学习的难度。</p> <p>本书涵盖四大专题,包括C#语言基础、Windows编程、数据访问、网络编程,共18个单元。</p> <h4>**篇 C#语言基础</h4> <p>包括1~12单元。</p> <p>单元1从C#的基础知识开始进行简要的介绍,其中包括.NET Framework、Common Language Runtime以及C#的特点等。该单元的目的,是让读者快速了解C#的基本概念,让读者对C#有一个基本的认识。</p> <p>单元2全面介绍C#中的数据类型,以及数据类型间的转换。</p> <p>程序中变量的值不断变化,*终产生人们想要的处理结果,而变量值的变化是通过运算符和表达式来实现的。在单元3中,详细阐述表达式中每种运算符的功能、优先级、结合性及在使用中的注意事项。</p> <p>在实际的任务中,大多数问题的求解步骤(也就是通常所说的算法)往往都会有若干分支选项或重复执行的情况。所以单元4讲解选择结构程序设计,单元5讲解循环结构的程序设计。</p> <p>随着程序代码的增多,任何软件都难免会出错,在软件开发的过程中,进行错误捕捉显得尤为重要,因为有的错误会导致软件功能失常,有的错误甚至会造成破坏性损失。在单元6中,主要讲解异常处理方法和调试方法。</p> <p>有时需要存储多个相同类型的值,这就要用到单元7中介绍的数组和集合的知识。</p> <p>C#是面向对象的语言,所以在单元8~12中,全面介绍面向对象的知识,包括类和对象的概念及其使用、类的属性和方法、类的继承与多态性(虚方法和重写、抽象类、接口)、委托与事件、泛型程序设计。</p> <h4>第二篇 Windows编程</h4> <p>单元13是Windows编程基础,单元14是Windows 编程进阶。这部分结合一些Windows应用程序实例,介绍*常用控件的属性、方法、事件及应用,让读者对Windows应用程序的设计有进一步的了解和认识。</p> <h4>第三篇 数据访问</h4> <p>主要分为ADO.NET数据访问和磁盘文件的读写。</p> <p>ADO.NET是一组用于和数据源进行交互的面向对象类库,因此,要掌握信息管理系统软件的开发,就必须掌握ADO.NET数据库的编程。单元15~16以简单通俗的例子,阐述C#语言中进行数据库编程的几个基本核心对象。</p> <p>文��是系统的重要组成部分。在物联网系统中,如何将数据**保存为文件?如何读取已有的数据文件?单元17介绍涉及到的文件读写技术。</p> <h4>第四篇 网络编程</h4> <p>计算机技术发展到现在,从应用服务器到PC机,再到手持设备,几乎都要通过网络连接起来。现在的应用软件,大都需要通过网络来进行通信。所以在单元18中,简单地引入C#在网络编程中的应用,而更多的网络编程技术将在其他教材和课程里深入学习。感兴趣的读者也可以自学。</p> <p>本书所有案例均在Visual Studio 2017环境下编译通过。</p> <p>由于书籍篇幅有限,通常不能将代码完全列出。强烈建议读者多编写代码实践,可以运行、调试、修改、补充各个案例与练习。编程技能的训练目的是掌握足够多的语言细节以便完成有意义的程序。而真实软件开发项目中的代码,则需要更为周全的考虑,例如统一的编程风格、完善的注释和文档、各种修饰符的选择、方法的参数检查、完整的异常处理和防御编程、有弹性的类层次设计等,所有这些,都需要在编程练习中逐步学会。</p> <p>本书由向燕飞担任主编,魏菊霞、彭之军担任副主编。具体分工是:第1~14单元由向燕飞编写,15~16单元由魏菊霞编写,17~18单元由彭之军编写。在出版过程中,我们得到了所在学校领导、同事以及出版社编辑的帮助和指教,特别是奚建清教授、曹琳教授对本书的编写提出了许多宝贵意见。谨向他们表示衷心感谢。</p> <p>由于作者水平有限,书中的错误和不妥之处在所难免,希望读者批评指正。有关本书的意见反馈和咨询,读者可在清华大学出版社网站的相关版块中与作者进行交流。</p> <p> </p> <p> </p> <p align="right">向燕飞</p>显示全部信息免费在线读单元1 我的**个C#程序
单元导读
本单元将对C#的基础知识进行简要介绍,其中主要包括.NET Framework、Common Language Runtime以及C#的特点等。
本单元的目的,是让读者快速了解C#的基本概念,对C#有一个基本认识。
在任何一门新技术的学习过程中,*开始的部分都比较困难,所以读者可以不必过分纠结于本单元中的名词,只需有一个简单的了解即可。
学习目标
初步认识.NET,并了解它的组成和特点。
熟悉Visual Studio .NET开发环境,掌握使用它开发应用程序的步骤。
学习C#程序的基本结构。
掌握如何编辑、编译和运行C#应用程序。
1.1 案 例 描 述
.NET是目前*主流的一门软件开发技术。自微软2000年推出下一代互联网构想以来,伴随着Microsoft .NET平台的构建和实施,.NET以其独有的**开发特点、简单易行的版本控制等多方面的全新技术优势,迅速风靡北美各大企业,并深受全球***的喜爱。.NET是世界上*大的软件公司——微软花费300亿美元精心打造的开发平台,可以开发Web程序、Windows应用程序和WAP无线网络应用程序等,其在大型系统开发中的份额越来越重。
本案例中,我们想要初步了解C#和.NET。将编写一个应用程序,能根据用户输入的名字,显示“Hello, XXX, 欢迎来到C#的世界!”欢迎词。执行结果如图1-1所示。
图1-1 **个程序