21天学通C#

21天学通C#
作 者: (美)Bradiey L.Jones著;信达工作室译
出版社: 人民邮电出版社
丛编项: NET精选系列
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: C语言 程序设计
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Bradley L.Jones是包括CodeGuru.com、Developer.com和Javascripts.com等在内的众多著名开发人员网站的系统管理员,还是internet.com网站的EarthWeb频道的执行编辑。Bradley使用C#的时间比大多数开发人员都长,因为他被邀请在beta版发布之前对其进行试用。Bradley拥有使用C、C++、PowerBuilder、SQL Server以及许多其他工具和技术进行开发工作的经验。另外,它还是一位畅销书作者,编写了最早的“21天”图书—《21天学通C语言》。

内容简介

C#是微软公司针对.NET框架而专门开发的一种面向对象的编程语言,它融C++的强大功能和Visual Basic的简易性于一体。《21天学通C#》以循序渐进的方式介绍了C#编程方面的知识,并提供了丰富的实例和大量的练习。通过学习实例,并将所学知识用于完成练习,读者将逐步了解、熟悉并精通这种新语言。《21天学通C#》分为21天课程,如果读者每天花2~3个小时,则将在三周内轻松地学完《21天学通C#》。第一周的课程介绍了C#的特点和一些基本概念,包括变量、运算符、控制语句、类以及类方法等;第二周的课程介绍了C#中的核心概念,包括结构、枚举、数组、方法重载、异常处理、继承、接口以及索引器、代表和事件等;第三周的课程介绍了.NET基类库、C#语言在Windows应用程序开发和Web开发方面的应用、编译器指令和调试技术、运算符重载以及反射等方面的知识。《21天学通C#》是为初中级程序员编写的,可作为学习C#语言的教程或参考资料。

图书目录

第一周课程

第1天课程

C#初步



1.1

C#是什么


1.2

为何使用C#


1.2.1

C#简单


1.2.2

C#现代


1.2.3

C#是面向对象的


1.2.4

C#强大、灵活


1.2.5

C#包含的单词为数不多


1.2.6

C#是模块化的


1.2.7

C#将流行


1.3

C#和其他编程语言的比较


1.4

编程前的准备工作


1.5

程序开发周期


1.5.1

创建源代码


1.5.2

执行C#程序


1.5.3

编译C#源代码


1.5.4

完成开发周期


1.6

第1个C#程序


1.6.1

输入并编译hello.cs


1.7

C#程序的类型


1.8

总结


1.9

问与答
1.10

作业


1.10.1

小测验


1.10.2

练习



第2天课程

了解C#程序



2.1

C#应用程序


2.1.1

注释


2.2

C#应用程序的基本组成部分


2.2.1

空白


2.2.2

C#关键字


2.2.3

字面值


2.2.4

标识符


2.3

C#应用程序的结构


2.3.1

C#表达式和语句


2.3.2

空语句


2.4

分析程序清单2.1


2.4.1

第1~4行:注释
2.4.2

第5、7、13、17、21和23行:空白


2.4.3

第6行:using语句


2.4.4

第8行:类声明


2.4.5

第9、11、26和27行:标点字符


2.4.6

第10行:Main()


2.4.7

第14、15和16行:声明


2.4.8

第20行:赋值语句


2.4.9

第24行和25行:调用函数


2.5

面向对象编程(OOP)


2.5.1

面向对象的概念


2.5.2

对象和类


2.6

显示基本信息
2.6.1

打印其他信息


2.7

总结


2.8

问与答
2.9

作业


2.9.1

小测验


2.9.2

练习



第3天课程

使用变量存储信息



3.1

变量


3.1.1

变量名


3.2

使用变量


3.2.1

声明变量


3.2.2

给变量赋值
3.2.3

初始化变量
3.2.4

使用未初始化的变量


3.3

了解计算机内存
3.4

C#数据类型


3.5

数值变量类型
3.5.1

整型数据类型


3.5.2

浮点数


3.5.3

Decimal
3.5.4

布尔型


3.5.5

检查和不检查


3.5.6

简单数据类型


3.6

字面值和变量


3.6.1

数值型字面值
3.6.2

布尔型字面值
3.6.3

字符串字面值
3.7

常量


3.8

引用类型


3.9

总结


3.10

问与答


3.11

作业


3.11.1

小测验


3.11.2

练习



第4天课程

使用运算符



4.1

运算符的类型


4.1.1

单目运算符


4.1.2

双目运算符


4.1.3

三目运算符


4.2

标点符号


4.3

基本的赋值运算符


4.4

数学/算术运算符


4.4.1

加减


4.4.2

乘法运算符


4.4.3

执行单目数学运算


4.5

关系运算符


4.5.1

If语句


4.5.2

条件逻辑运算符


4.6

逻辑按位运算符


4.7

类型运算符


4.8

sizeof

运算符


4.9

条件运算符


4.10

运算符优先级


4.10.1

改变优先级次序


4.11

转换数据类型


4.12

理解操作数提升
4.13

给足够勇敢者


4.13.1

在内存中存储变量


4.13.2

移位运算符


4.13.3

逻辑运算符


4.14

总结


4.15

问与答
4.16

作业


4.16.1

小测验


4.16.2

练习



第5天课程

控制语句



5.1

控制程序流程


5.2

使用选择语句


5.2.1

再谈if语句


5.2.2

switch语句


5.2.3

switch语句的控制类型


5.3

使用循环语句


5.3.1

while语句


5.3.2

do语句


5.3.3

for语句
5.3.4

foreach语句


5.3.5

再谈break和continue语句


5.4

使用goto


5.4.1

标签语句
5.5

程序流程命令的嵌套


5.6

总结


5.7

问与答
5.8

作业


5.8.1

小测验


5.8.2

练习



第6天课程



6.1

再谈面向对象编程


6.1.1

封装


6.1.2

多态


6.1.3

继承


6.1.4

重用


6.1.5

对象和类


6.2

定义类


6.3

类声明


6.3.1

类成员
6.4

数据成员(字段)


6.4.1

访问数据成员


6.4.2

使用数据成员


6.4.3

将类用作数据成员


6.4.4

类型嵌套


6.5

静态变量


6.6

应用程序类
6.7

属性


6.8

名称空间
6.8.1

嵌套名称空间


6.9

总结


6.10

问与答


6.11

作业


6.11.1

小测验


6.11.2

练习



第7天课程

类方法和成员函数



7.1

方法初步


7.2

使用方法


7.3

包含方法的程序的流程


7.4

方法的格式


7.4.1

方法头


7.4.2

方法的返回数据类型


7.4.3

给方法命名


7.4.4

方法体


7.5

给方法传递值


7.5.1

静态方法


7.5.2

不同的参数访问属性


7.6

类方法的类型


7.6.1

属性存取器方法


7.6.2

构造函数


7.6.3

析构函数


7.7

总结


7.8

问与答
7.9

作业


7.9.1

小测验


7.9.2

练习



第1周复习



·程序WR01.cs


·XML

文档
·代码概览
·Main方法
·GetMenuChoice方法


·菜单选项


·point类


·line类


·其他类



第二周课程

第8天课程

高级数据存储方式:结构、

枚举和数组



8.1

结构


8.1.1

结构与类


8.1.2

结构成员


8.1.3

结构的嵌套
8.1.4

结构方法


8.1.5

结构的构造函数
8.1.6

结构的析构函数
8.2

枚举


8.2.1

修改枚举的默认值


8.2.2

修改枚举的底层类型
8.3

使用数组存储数据


8.3.1

声明数组


8.3.2

多维数组


8.3.3

创建包含的数组长度不同的数组


8.3.4

检查数组长度和边界


8.3.5

在类和结构中使用数组
8.3.6

使用foreach语句


8.4

总结


8.5

问与答
8.6

作业


8.6.1

小测验


8.6.2

练习



第9天课程

关于方法的高级主题



9.1

重载方法


9.1.1

重载函数
9.1.2

构造函数重载


9.1.3

理解方法的特征标


9.2

使用不同数目的参数


9.2.1

使用params来指定多种数据类型


9.2.2

详谈params


9.2.3

Main方法和命令参数
9.3

作用域
9.3.1

局部作用域
9.3.2

区分类变量和局部变量


9.3.3

类作用域限定符


9.4

不能用于创建对象的类


9.4.1

私有构造函数


9.5

再谈名称空间


9.5.1

给名称空间命名


9.5.2

声明名称空间


9.5.3

using和名称空间


9.6

总结


9.7

问与答
9.8

作业


9.8.1

小测验


9.8.2

练习



第10天课程

处理异常

10.1

异常处理的概念


10.1.1

通过逻辑代码预防错误


10.1.2

导致异常的原因


10.2

异常处理


10.2.1

使用try和catch


10.2.2

捕获异常信息


10.2.3

给try语句提供多个catch语句


10.2.4

理解异常的处理顺序


10.3

使用finally添加最后执行的操作


10.4

常见的异常


10.5

定义自己的异常类


10.6

引发自己的异常


10.6.1

重新引发异常


10.7

checked语句和unchecked语句


10.7.1

checked和unchecked的格式


10.8

总结


10.9

问与答
10.10

作业


10.10.1

小测验


10.10.2

练习



第11天课程

继承



11.1

继承的基本知识


11.1.1

简单继承


11.1.2

使用继承


11.1.3

在派生类的方法中使用基类的方法


11.2

多态


11.3

虚拟方法
11.4

抽象类


11.5

密封类


11.6

终极基类:Object


11.6.1

Object类中的方法
11.6.2

装箱和拆箱


11.7

将关键字is和as用于类——类转换


11.7.1

关键字is


11.7.2

关键字as


11.8

由不同类型的对象组成的数组


11.9

总结


11.10

问与答


11.11

作业


11.11.1

小测验


11.11.2

练习



第12天课程

输入和输出



12.1

理解控制台输入和输出


12.2

格式化信息


12.2.1

格式化数字
12.2.2

格式化日期和时间


12.2.3

显示枚举中的值
12.3

使用字符串


12.3.1

字符串方法
12.3.2

特殊的字符串格式符——@


12.3.3

创建字符串


12.4

从控制台获取信息


12.4.1

使用Read方法


12.4.2

使用ReadLine方法


12.4.3

Convert类


12.5

总结


12.6

问与答
12.7

作业


12.7.1

小测验


12.7.2

练习



第13天课程

接口



13.1

接口


13.1.1

类和接口之比较


13.1.2

使用接口


13.1.3

为何使用接口


13.2

定义接口


13.2.1

定义带方法成员的接口


13.2.2

在接口中指定属性


13.3

使用多个接口


13.4

显式接口成员


13.5

从已有的接口派生出新的接口


13.6

隐藏接口成员


13.7

总结


13.8

问与答
13.9

作业


13.9.1

小测验


13.9.2

练习



第14天课程

索引器、代表和事件



14.1

使用索引器


14.2

代表


14.3

事件


14.4

创建事件


14.4.1

事件的代表


14.4.2

EventArgs类
14.4.3

事件类的代码
14.4.4

创建事件处理程序


14.4.5

将事件处理程序和事件关联起来


14.4.6

将所有的东西组合起来


14.4.7

多个事件处理程序


14.4.8

删除事件处理程序


14.5

总结


14.6

问与答
14.7

作业


14.7.1

小测验


14.7.2

练习



第2周复习



·用于表示扑克牌的枚举


·card结构


·deck类


·CardGame类


·查看整副牌


·总结



第三周课程

第15天课程

使用.NET基类



15.1

.NET框架中的类


15.1.1

通用语言规范


15.1.2

用于组织类型的名称空间


15.1.3

ECMA标准


15.1.4

查看.NET框架类


15.2

使用定时器


15.3

获取目录和系统环境信息


15.4

使用数学函数


15.5

使用文件


15.5.1

复制文件
15.5.2

获取文件信息


15.6

使用数据文件


15.6.1

理解流


15.6.2

读取文件的步骤


15.6.3

用于创建和打开文件的方法


15.6.4

使用其他文件类型


15.7

总结


15.8

问与答
15.9

作业


15.9.1

小测验


15.9.2

练习



第16天课程

创建Windows窗体



16.1

使用Windows和窗体


16.2

创建Windows窗体


16.2.1

编译选项


16.2.2

分析第一个Windows窗体应用程序


16.2.3

Application.Run方法


16.3

定制窗体的外观


16.3.1

窗体的标题栏


16.3.2

窗体的大小


16.3.3

窗体的颜色和背景


16.3.4

边框


16.4

将控件加入到窗体中


16.4.1

使用标签来显示文本
16.4.2

建议使用控件的方法
16.4.3

使用按钮


16.4.4

使用文本框
16.4.5

使用其他控件


16.5

总结


16.6

问与答
16.7

作业


16.7.1

小测验


16.7.2

练习



第17天课程

创建Windows应用程序

17.1

使用单选按钮


17.1.1

将单选按钮分组


17.1.2

使用容器


17.2

使用列表框


17.2.1

在列表框中添加选项


17.3

在窗体中加入菜单


17.3.1

创建一个基本菜单
17.3.2

创建多个菜单


17.3.3

设置菜单的核对标记


17.3.4

创建弹出式菜单


17.4

显示弹出式对话框和窗体


17.4.1

MessageBox类


17.4.2

Microsoft

Windows中已有的对话框


17.4.3

弹出自己的对话框


17.5

总结


17.6

问与答
17.7

作业


17.7.1

小测验


17.7.2

练习



第18天课程

Web开发



18.1

创建Web应用程序
18.2

组件的概念


18.3

Web服务


18.3.1

创建简单的组件


18.3.2

创建Web服务


18.3.3

创建代理


18.3.4

调用Web服务


18.4

创建常规Web应用程序


18.4.1

Web表单


18.4.2

创建一个基本的ASP.NET应用程序


18.4.3

ASP.NET控件


18.5

总结


18.6

问与答
18.7

作业


18.7.1

小测验


18.7.2

练习



第19天课程

C#中的编译指令和调试技术



19.1

何为调试


19.2

错误类型


19.3

查找错误


19.4

逐行检查代码——跟踪代码


19.5

预处理器编译指令


19.5.1

预处理声明


19.5.2

条件处理(#if、#elif、#else、#endif)


19.5.3

报告代码中的错误和警告(#error、#warning)


19.5.4

修改行号


19.5.5

区域简介


19.6

使用调试器


19.7

总结


19.8

问与答
19.9

作业


19.9.1

小测验


19.9.2

练习



第20天课程

运算符重载



20.1

再谈函数重载


20.2

运算符重载


20.2.1

重载运算符
20.2.2

重载基本的双目数学运算符


20.2.3

重载基本的单目数学运算符


20.2.4

重载关系运算符


20.2.5

重载逻辑运算符


20.2.6

运算符重载情况小结


20.3

总结


20.4

问与答
20.5

作业


20.5.1

小测验


20.5.2

练习



第21天课程

反射和属性



21.1

反射


21.2

属性(attribute)


21.2.1

何为属性


21.2.2

使用属性


21.2.3

使用多个属性


21.2.4

使用带参数的属性


21.2.5

定义自己的属性
21.2.6

访问被关联的属性信息


21.2.7

将各部分组合起来


21.2.8

单次使用的属性和多次使用的属性


21.3

总结


21.4

问与答
21.5

作业


21.5.1

小测验


21.5.2

练习



第3周复习



·应用所学的知识


·展示您的程序



附录A

作业答案

·第1天课程的答案


小测验


练习


·第2天课程的答案


小测验


练习


·第3天课程的答案


小测验


练习


·第4天课程的答案


小测验


练习


·第5天课程的答案


小测验


练习


·第6天课程的答案


小测验


练习


·第7天课程的答案


小测验


练习


·第8天课程的答案


小测验


练习


·第9天课程的答案


小测验


练习


·第10天课程的答案


小测验


练习


·第11天课程的答案


小测验


练习


·第12天课程的答案


小测验


练习


·第13天课程的答案


小测验


练习


·第14天课程的答案


小测验


练习


·第15天课程的答案


小测验


练习


·第16天课程的答案


小测验


练习


·第17天课程的答案


小测验


练习


·第18天课程的答案


小测验


练习


·第19天课程的答案


小测验


练习


·第20天课程的答案


小测验


练习


·第21天课程的答案


小测验


练习



附录B

C#关键字



附录C

C#命令行编译器标记



·输出选项


/out:


/target:或/t:


/define:

list>或/d:

list>


/doc:


·输入选项


/recurse:


/reference:

list>或/r:

list>


/addmodule:

list>


·资源选项


/win32res:


/win32icon:
/resource:或/res:


/linkresource:或/linkres:


·代码生成选项


/debug:[+|-]


/debug:{full|pdbonly}


/optimize[+|-]或/o[+|-]


/incremental[+|-]或/incr[+|-]


·错误和警告选项


/warnaserror[+|-]


/warn:或/w


/nowarn:

list>


·编程语言选项


/checked[+|-]


/unsafe[+|-]


·杂项


@


/help或/?


/nologo


/noconfig


·高级选项


/baseaddress:


/bugreport:


/codepage:


/utf8output


/main:或/m:


/fullpaths


/filealign:


/nostdlib[+|-]


/lib:

list>



附录D

不同的计数系统



十进制


二进制


十六进制