深入浅出C#程序设计/深入浅出系列规划教材pdf下载pdf下载

深入浅出C#程序设计/深入浅出系列规划教材百度网盘pdf下载

作者:
简介:本篇主要提供深入浅出C#程序设计/深入浅出系列规划教材pdf下载
出版社:
出版时间:2017-01
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

编辑推荐

  1.本书主要内容包括C#语法、面向对象编程、Windows编程、数据库、GDI+绘图、网络和线程等章节。ASP.NET网站和WPF等内容不包括在内,这主要是因为这些内容很复杂,不是短篇幅能阐述的。
  2.用电脑绘图,是我学习计算机的动力之源,当看到自己绘制的图形闪现在屏幕上,有种别人为无法理解的美学感受,在工程实践中更是经常使用这方面的知识,非常遗憾的是C#专门讲述GDI+绘图的很少,我想GDI+绘图一章可能会吸引像我一样的读者,如果别人有这个教材,我一定会购买的。我在工程实际中用到*多的就是网络编程,特别是物联网,手机,移动终端等程序开发,都需要非常透彻了解了解网络协议,就数据传输来说主要有Sockets,TCP,UDP等技术,只要牵涉网络就很复杂。本书对此进行了全面解析。由于其复杂性,笔者也经常遗忘,但每次应用时,就会打开自己写的教程。我希望其他读者,也会将我的教程当作案头字典,甚至经典。

内容简介

  本书从语法讲起,由浅入深,层层深入,尽量用简洁的语言、少量的代码解释复杂的C#程序;主要内容包括C#语法、面向对象编程、Windows编程、数据库、GDI+绘图、网络和线程等。本书适合作为高等院校本科生和研究生的教材。

目录

第1章初识C#
1.1Visual Studio.NET简介
1.2.NET Framework简介
1.3C#简介
1.4Visual Studio .NET开发环境
第2章接触C#
2.1第一个C#程序
2.2关于控制台程序
2.3C#程序基本结构
2.3.1最简单的C#结构
2.3.2控制台基本输入和输出语句
2.4编程习惯
第3章C#语法
3.1变量与常量
3.1.1数值类型
3.1.2变量定义
3.1.3常量定义
3.1.4数据类型转换
3.2运算符
3.2.1算术运算符
3.2.2关系运算符
3.2.3逻辑运算符
3.2.4位运算符
3.2.5赋值运算符
3.2.6三元条件运算符
3.2.7运算符的优先级
3.3选择语句
3.3.1if语句
3.3.2switch语句
3.4循环
3.4.1while
3.4.2do while
3.4.3for
3.4.4foreach语句
3.4.5跳转语句
3.5异常
3.5.1try catch语句
3.5.2throw语句
第4章字符串、时间和简单数组
4.1字符串
4.1.1字符串的定义
4.1.2转义字符
4.1.3字符串的操作
4.1.4数值与字符串的相互转化
4.1.5占位符
4.1.6string.Format( )
4.1.7格式化字符串
4.1.8StringBuider
4.1.9字符串索引
4.2简单数组
4.2.1一维数组
4.2.2多维数组
4.2.3锯齿数组
4.2.4数组应用举例
4.3时间
4.3.1DateTime
4.3.2日期时间字符串的显示格式
4.3.3DateTime的计算
4.3.4TimeSpan
第5章面向对象编程
5.1面向对象
5.2类和对象
5.3封装、继承、多态
5.4程序结构
5.5名称空间
5.6部分类
5.7类的成员
5.7.1访问修饰符
5.7.2字段
5.7.3方法
5.7.4属性
5.8过程代码写在哪里
5.9方法重载
5.10构造函数
5.11析构函数
5.12this
5.13静态成员
5.14运算符重载
5.15引用类型与值类型
5.16装箱与拆箱
5.17函数的参数
5.18索引
5.19结构
5.20枚举
第6章继承与多态
6.1继承
6.2base关键字
6.3派生类的构造函数
6.4Object类
6.5多态
6.6隐藏方法new
6.7虚方法virtualoverride
6.8抽象类与抽象方法
6.9密封类和密封方法
6.10ToString()
6.11接口interface
第7章委托与事件
7.1委托定义
7.2委托参数
7.3多播委托
7.4匿名委托
7.5委托耦合
7.6关于事件
7.7发布订阅
7.8事件参数
7.9事件句柄EventHandler
7.10事件参数EventArgs
第8章泛型
8.1泛型概念
8.2泛型类
8.2.1定义泛型类
8.2.2泛型类的默认值default
8.2.3泛型约束
8.3泛型接口
8.4泛型结构
8.5泛型方法
第9章数组与集合
9.1对象数组
9.2Array类
9.2.1Array数组创建
9.2.2Array数组复制
9.2.3Array数组排序
9.3元组
9.4列表
9.4.1ArrayList
9.4.2List
9.5队列
9.6栈
9.7链表
9.8有序列表
9.9字典
9.10有序字典
9.11Lookup类
9.12集
9.13可观察集合
9.14位数组
9.14.1BitArray
9.14.2BitVector32
第10章Windows窗体
10.1第一个窗体
10.2第一个按钮
10.3多个窗体
10.4认识窗体类
10.4.1三个文件
10.4.2Form1.cs
10.4.3Form1.Designer.cs
10.5简易计算器
10.6窗体和控件的属性
10.6.1大小和位置
10.6.2控件的停泊与锚点
10.6.3“捕捉按钮”小游戏
10.6.4颜色设置
10.7鼠标键盘事件
10.7.1鼠标事件
10.7.2键盘事件
10.7.3两个特殊的键盘事件
10.8事件的一些问题
10.9多文档界面
10.10窗体的状态
10.11窗体事件的执行顺序
10.12两个窗体之间传递数据
第11章Windows控件
11.1Windows工具箱
11.2公共控件
11.2.1RadioButton
11.2.2CheckBox
11.2.3ListBox
11.2.4ComboBox
11.2.5TreeView
11.2.6PictureBox控件
11.3菜单和工具栏
11.3.1MenuStrip
11.3.2ToolStrip
11.3.3ContextMenuStrip
11.4容器控件
11.4.1FlowLayoutPanel
11.4.2TableLayoutPanel
11.4.3SplitContainer
11.4.4TabControl
11.5对话框
11.5.1ColorDialog和FontDialog
11.5.2FolderBrowserDialog、OpenFileDialog和SaveFileDialog
第12章文件操作
12.1Directory和DirectoryInfo
12.1.1Directory
12.1.2DirectoryInfo
12.2File和FileInfo
12.2.1File
12.2.2FileInfo
12.3Path和DriveInfo
12.3.1Path
12.3.2相对路径
12.3.3DriveInfo
12.4文件读写
12.4.1File读文件
12.4.2写入文件
12.5流
12.5.1读写二进制文件
12.5.2读写文本文件
12.6资源管理器
第13章数据库
13.1C#与数据库的关系
13.2SQL语言
13.3ADO.NET
13.4C#调用Access数据库
13.4.1OleDbConnection
13.4.2OleDbCommand
13.4.3OleDbDataReader
13.4.4OleDbDataAdapter
13.5DataTable
13.5.1DataTable的定义
13.5.2DataColumn
13.5.3DataRow
13.5.4DataTable提取数据库数据
13.5.5编辑DataTable中的数据
13.5.6DataRow的状态
13.5.7DataRow的版本
13.6DataView
13.7DataSet
13.7.1DatSet与DataTable
13.7.2DataSet关系
13.7.3DataSet约束
13.8DataGridView
13.8.1行和列
13.8.2单元格
13.8.3行宽和列宽
13.8.4冻结
13.8.5排序
13.8.6隐藏
13.8.7列包含控件
13.8.8虚拟模式
13.9服务器资源管理器
13.10BindingSource
13.10.1BindingSource的简单应用
13.10.2BindingSource的定位
13.10.3BindingSource的排序过滤与查找
13.10.4Binding类
13.11可视化数据控件
13.11.1DataSet控件
13.11.2BindingNavigator控件
13.12窗体控件与数据库
13.12.1ComboBox
13.12.2窗体控件与DataSet
13.12.3控件的数据库向导
13.13综合实例
13.13.1创建数据库
13.13.2创建主窗体
13.13.3创建操作数据库的公共类
13.13.4创建图书类别窗体
13.13.5创建增加图书窗体
13.13.6创建编辑图书窗体
13.13.7创建图书查询窗体
13.14C#调用SQL Server数据库
13.14.1关于SQL Server Express数据库
13.14.2创建SQL Server Express数据库
13.14.3C#调用SQL Server Express数据库
第14章Lambda表达式与扩展方法
14.1代码简化的历程
14.1.1代码简化1
14.1.2代码简化2
14.1.3代码简化3
14.1.4代码简化4
14.1.5代码简化5
14.1.6代码简化6
14.2Lambda表达式
14.3Func,Action和Predicate
14.3.1Func
14.3.2Action
14.3.3Predicate
14.4委托在List中的简单应用
14.5扩展方法
第15章Linq
15.1准备数据
15.2投影和筛选
15.3排序
15.4分组
15.5复合from
15.6延迟执行与立即执行
15.6.1延迟执行
15.6.2立即执行
第16章GDI+绘图
16.1GDI与GDI+
16.2绘制简单图形
16.3GDI+绘图原理
16.4Color
16.4.1RGB
16.4.2ARGB
16.4.3网络安全色
16.4.4Color结构
16.5Pen和Brush
16.5.1Pen
16.5.2Brush
16.6Graphics
16.7Point、Size和Rectangle
16.7.1Point和PointF
16.7.2Size和SizeF
16.7.3Rectangle和RectangleF
16.8绘制图形
16.9绘制文本
16.10绘制图片
16.11图形变换
16.12屏幕刷新问题
16.13Invalidate
16.14橡皮筋
16.15Image和BitMap
16.16ColorMatrix
16.17绘制函数曲线
16.17.1简单函数曲线
16.17.2动态曲线
16.18不使用OnPaint、Invalidate的方法
第17章网络编程
17.1网络基本概念
17.1.1TCP/IP
17.1.2Socket(套接字)
17.1.3其他相关概念
17.1.4客户与服务器
17.2Socket程序
17.3TCP程序
17.4UDP程序
17.4.1UDP客户端
17.4.2UDP服务端
17.5异步通信
17.5.1同步和异步
17.5.2Socket异步连接
17.5.3Socket异步连接
17.6聊天程序
17.6.1客户端
17.6.2服务端
第18章线程
18.1进程与线程
18.2异步委托
18.2.1同步委托
18.2.2异步委托
18.2.3IAsyncResult
18.2.4异步回调AsyncCallback
18.2.5异步回调的Lambda表达式
18.3线程
18.3.1Thread
18.3.2给线程命名
18.3.3给线程传递参数
18.3.4线程的控制
18.3.5优先级
18.4线程池
18.5争用
18.6Windows窗体的线程问题
18.6.1Timer控件的问题
18.6.2System.Threading.Timer类
18.6.3System.Timers类
18.7BackgroundWorker
18.7.1BackgroundWorker控件
18.7.2BackgroundWorker类
18.8窗体与线程交换数据的一种简易方法
第19章关于变量命名
后记

精彩书摘

  第3章
  C#语法
  与其他编程语言相比,C#语言在接近人类语言方面更胜一筹,C#继承了C语言大部分的语法结构,但与C语言也有很大不同,例如C#取消了令人讨厌的指针。
  3.1变量与常量
  C#毕竟是程序语言,总会和日常用语有所不同,例如日常中人们会说半径为1.2米,学生人数是30,说的时候并不考虑1.2是整数还是小数,但C#是必须要考虑类型的,就因为C#考虑了类型,给初学者造成了很大困扰。记住,C#是强类型语言,变量必须经过定义才能使用。
  3.1.1数值类型
  C#的数值类型包括整数、实数、布尔类型等。数值类型如表31所示。
  表31数值类型
  C#别名.NET CTS类型范围说明
  整数
  sbyteSystem.SByte-128~1278位有符号整数
  byteSystem.Byte0~2558位无符号整数
  shortSystem.Int16-32768~3276716位有符号整数
  ushortSystem.UInt160~6553516位无符号整数
  intSystem.Int32-231~231-132位有符号整数
  uintSystem.UInt320~232-132位无符号整数
  longSystem.Int64-263~263-164位有符号整数
  ulongSystem.UInt640~264-164位无符号整数
  charSystem.CharUnicode字符编码16位无符号整数
  实数
  floatSystem.Single±1.5×10-45~±3.4×10-3832位单精度
  doubleSystem.Double±5.0×10-324~±3.4×10-30864位双精度
  decimalSystem.Decimal±1.0×10-28~±7.9×1028128位高精度十进制数
  布尔boolSystem.Boolearntrue和false1位二进制
  学过C语言的同学可能熟悉int、float、double等。初学者可能对这些数据类型感到迷惑,比如int和System.Int32究竟是什么关系,在编程中应该使用哪一个。
  在.NET中,定义了通用类型系统(Common Type System,CTS),不管采用VB.NET或C#,所定义的数据类型都将被翻译成CTS类型。而我们熟悉的int、float等是属于C#语言自身独有的,int是System.Int32在C#中的别名。
  我们可以认为int和System.Int32就是一回事。double和System.Double是一回事。用户愿意用哪一个是自己的爱好问题。
  在实数中有一个我们不熟悉的类型decimal,它主要用于财务货币计算,可以精确地表示十进制小数,如十进制数0.003用其他类型会产生误差,而用decimal虽然也会有误差,但由于位数多达128位,因而十分精确,虽然位数多,但取值范围不如float和double大。
  各种类型的数值表达如下。
  1. 整数类型
  整数类型分为无符号数和有符号数,这里的符号指的是负号。无符号的数就是只能取正数。一些整数类型如下:
  int a=123;
  long b=23L;//L可以写成l
  uint c=123U;//U可以写成u
  ulong d=123UL;//UL可以写成ul
  如果是十六进制在数字前面加0x或0X,数字基数为0~9、A~F或a~f。
  例如:
  int a=0x23; //十进制35
  Int b=0xAB; //十进制171
  如果是decimal类型,则在数字后面加M或m,如:
  decimal a=23.6M
  2. char类型
  char类型属于一种特殊的整数类型。它采用Unicode编码格式对每个字符都进行了编码,字符的写法是对单个字符加单引号,例如‘a’,‘A’,‘大’,‘β’等。注意单引号中只能放一个字符(转义字符除外),如‘ab’是错误的。但转义字符‘\n’是正确的,它代表“回车”,关于转义字符串后面会详述。一些字符的Unicode编码如表32所示。
  表32字符的Unicode编码
  字符Unicode编码(十进制整数)字符Unicode编码(十进制整数)
  ‘a’97‘大’22823
  ‘A’65‘\n’10
  ‘β’946
  3. 实数类型
  如果只写出带小数点的数据,系统默认为是double型,这是要值得注意的事。这与C语言有所不同。如果需要float型,必须在后面加F或f,否则出错,如:
  double a=12.8;
  floatb=12.8F; //后面必须有F或f
  这些数据类型都不区分大小写。如12.8F和12.8f没有区别。
  4. 工程计数法
  double a=2e3; //值为2000即2×103
  double b=3E-4; //值为0.0004即2×10-4
  工程计数法表示的值都是double型,写成e或E都可以。
  3.1.2变量定义
  1. 变量定义的语法
  在C#中,定义一个整型变量a,以下两种写法完全等价:
  int a;
  System.Int32 a;
  定义变量的格式是:
  类型 变量名1, 变量名2;
  类型 变量名1=初值1, 变量名2=初值2;
  例如:
  int a, b, c;
  double d;
  如果要对变量赋初值,如下:
  int a;
  a=3;
  也可以直接写成一行,如下:
  int a=3;
  2. 类型推断
  C#支持一种叫做“类型推断”的形式来定义变量,采用关键字var,如:
  var a=3; //int
  var b=3.0; //double
  var c=true; //bool
  用var定义,变量根据右边的值自动判断数据类型。
  关于变量名的定义需要注意以下事项:
   变量名必须以字母或下划线开头,后面可以是字母与变量的组合,也可以是汉字。注意变量名区分大小写。
   变量名不能与C#的关键字重名。C#的关键字共有七十多个,例如int、float、using等不能用作变量名。
   如果非要使用关键字,可以在变量名前面加@,例如@int是一个正确的变量。
   在C#中可以使用汉字,希腊字母等作为变量,例如下面的变量名是合法的:
  int α,β, π;
  double半径;
  这些奇怪字符的使用增强了程序的可读性。
   可以使用Unicode字符定义变量,用语法\uXXXX来指定,其中XXXX是Unicode字符的十六进制编码。由于字符a的Unicode十六进制码为00AA,所以下列用法等价。
  int a=9;
  int \u00AA=9;
   声明了变量后,就不能再更改变量的类型了,例如下列语句会出现错误:
  int a;
  double a;
  3. 变量作用域
  变量的作用域为{ },如下面的代码会出错:
  {
  int a=5;
  }
  Console.Write(a);
  在{ }内的变量,在{ }外不存在。
  ……

前言/序言

  本书以简洁的叙事方式对C#语言进行讲述,如果您想高效率地学习C#,并喜欢代码简洁,请打开本书。
  对于C#初学者,大多数教材读起来非常吃力,这方面笔者有切身的体会,特别是那些冗长的变量命名,整页的程序代码,令人望而生畏。很多内容其实一句话可以说清,如果用很大篇幅讲解,这对初学者是不利的。本书的写作初衷就是让读者省力,节约时间,为读者扫清阅读障碍。在此方面本书做了最大努力,减少代码量,不让读者有读不下去的感觉。这也是本书不提供配套素材的根本原因。如果您觉得还是需要光盘或是源代码,说明本书做得还不够好,笔者将吸取经验,尽量做到极致。
  本书前面部分介绍VS.NET和C#的基本知识,去除大量无用的专业术语,对菜单工具栏等界面进行简单介绍,让读者可以直接切入C#主题。
  面向对象概念是C#编程的核心内容,“对象”这个术语过于学术化,其真正的意义其实是“物体”,C#语言在某种程度上来说是对自然界的一种描述语言,与日常用语是一样的。本书尽量将C#语言与身边事物和日常语言相结合,力求让学生理解其内涵。
  类似委托与事件对初学者来说很难理解,本书可以做到两三行语句让读者透彻理解,这是本书的特色之一。
  Windows和数据库程序应该是很多读者学C#语言的目的,特别是数据库编程应用极为广泛,数据库内容在本书中占了大部分篇幅。
  用计算机绘图是笔者学习计算机技术的动力之源,C#提供了GDI+,可以开发绘图程序和工业实时仿真曲线等,目前很少有教材对C#绘图做全面的介绍,但其应用却非常广泛,本书将对C#绘图进行全面解析。
  网络和线程是物联网、互联网+、虚拟现实、增强现实、移动通信等的核心内容,这些都是应用程序的主流发展方向,本书对此进行了全面分析。
  ASP.NET和WPF等内容不包含在本书之内,不是它们不重要,而是它们很复杂,不是一两章内容所能讲清楚的,若因为没有这些内容而放下本书,那是不明智的。
  本书希望给C#初学者带来福音,能成为读者的案头字典,甚至经典。本书非常适合作为本科生,研究生的教材。也适合那些喜欢编程的人,喜欢成为编程高手的人。
  编程不只是技术,同时也是艺术。
  编者
  2016年6月