新書推薦:
《
新经济史革命:计量学派与新制度学派
》
售價:NT$
406.0
《
盗墓笔记之秦岭神树4
》
售價:NT$
259.0
《
战胜人格障碍
》
售價:NT$
302.0
《
逃不开的科技创新战争
》
售價:NT$
467.0
《
漫画三国一百年
》
售價:NT$
250.0
《
希腊文明3000年(古希腊的科学精神,成就了现代科学之源)
》
售價:NT$
374.0
《
粤行丛录(岭南史料笔记丛刊)
》
售價:NT$
374.0
《
岁月待人归:徐悲鸿自述人生艺术
》
售價:NT$
286.0
編輯推薦:
本书为浙江省普通高校“十三五”新形态教材和浙江省“十二五”优秀教材
內容簡介:
本书以通俗易懂的语言、丰富而又生动有趣的示例来讲解C#多方面的基础知识,具体囊括数据类型、运算符、程序控制、面向对象基础、数组、集合、字符串、文件、Windows Form程序设计、序列化、GDI 、多线程、SQL、ADO.Net等内容。本书开发环境为Visual Studio 2017,但本书绝大多数代码基本可以在完全不做更改的情况下,运行于Visual Studio 2005及以上版本。
全书讲解上力求通俗易懂,循序渐进,且针对重要知识点配套微视频; 案例安排上,大量辅以精炼示例,且兼顾示例的知识性和趣味性; 练习方面,既有简单的课堂练习、也有知识拓展性的课堂思考和课后思考,还有综合性较强较难的课后练习,综合性和难度逐步提升,符合一般的学习规律。另外,作者结合多年教学中所总结的学生的疑惑或者扩展某些课堂知识,在各章安排了相应的问与答,讲解了一些容易混淆的问题或者扩展了一些课堂知识供学有余力学生学习。
本书提供配套微视频、课件、教学大纲、教学计划进度、源代码、模拟试题等多种材料,供学生全方位学习,也供教师授课或读者自学使用。
本书适用于大中专院校、培训机构及.Net爱好者使用。适用于“C#面向对象程序设计”“WinForm应用开发”“.Net下的数据库应用开发”等课程。
關於作者:
王贤明,男,副教授,毕业于中国科学院。曾任职于国内外多家电子软件公司,从事软件设计开发及管理等工作。目前主要的研究方向为:自然语言处理、网络数据挖掘、机器学习等。主持国家社科基金、教育部人文社科项目、浙江省自然科学基金等多项科研项目,为政府和企业提供相关技术支持和咨询服务。在国内外学术期刊发表论文20余篇,授权国家发明专利2项,著作权5项,获市科技进步二等奖、省经信委优秀调研报告等多项奖励。
谷琼,女,教授,博士毕业于中国地质大学计算机学院,西南大学逻辑与智能研究中心博士后。目前主要研究方向为:网络数据挖掘、自然语言处理、网络舆情等。主持国家星火计划项目、教育部人文社科项目、语委科研规划项目、博士后项目、湖北省自然科学基金等多项项目。在国内外学术期刊发表论文20余篇,授权国家发明专利5项,申请著作权4项,荣获湖北省优秀科技论文三等奖一项,襄阳市科技进步二等奖1项。
目錄 :
第1章概述
1.1.NET
1.2C#
1.3VS开发环境
1.4编程初试
1.4.1控制台程序
1.4.2WinForm程序
1.5问与答
1.5.1学习.Net相关技术,将来能干什么
1.5.2何谓注释,C#中的注释有几种
1.5.3使用VS时有什么技巧
1.5.4VS太大,是否有更小巧的C#学习开发环境
1.6思考与练习
第2章数据类型与运算符
2.1变量与常量
2.1.1常量
2.1.2变量
2.1.3变量的命名
2.1.4变量的命名法
2.2简单数据类型
2.2.1bool类型
2.2.2整型类型
2.2.3char类型
2.2.4小数类型
2.3枚举类型
2.4结构类型
2.5隐式类型变量
2.6运算符
2.6.1算术运算符
2.6.2赋值运算符
2.6.3关系与逻辑运算符
2.6.4位运算符
2.6.5条件运算符
2.6.6自增与自减
2.6.7运算符的优先级
2.7转换
2.7.1隐式转换
2.7.2显式转换
2.7.3Type.Parse()
2.7.4Convert类
2.7.5装箱与拆箱
2.7.6as & is
2.8问与答
2.8.1数值类型那么多,怎样记忆各类型的取值范围
2.8.2如何知道数值类型占用多大存储空间
2.8.3数值运算中,除数不能为零吗
2.8.40/0.0结果为多少
2.8.5如何利用Convert做进制转换
2.8.6不同数据类型混合运算时的类型提升问题
2.8.7定义枚举类型时,个枚举对应的数值必须为0吗
2.8.8定义枚举类型时,各个枚举项对应的数值必须连续吗
2.8.9如何更改枚举类型元素的数据类型
2.8.10各种类型的默认值分别是什么
2.8.11枚举类型的位操作是什么意思
2.9思考与练习
第3章程序控制
3.1选择语句
3.1.1if语句
3.1.2switch语句
3.2循环语句
3.2.1for语句
3.2.2while语句
3.2.3do…while语句
3.3跳转语句
3.3.1break语句
3.3.2continue语句
3.3.3goto语句
3.3.4return语句
3.3.5throw语句
3.4问与答
3.4.1if和switch分别应用于什么场合
3.4.2if和switch的各个分支的书写顺序有影响吗
3.4.3如何避免太深的嵌套
3.4.4for、while、do…while分别应用于什么场合
3.4.5如何知道程序执行耗费的时间
3.4.6如何产生随机数
3.4.7什么是程序集
3.5思考与练习
第4章面向对象基础
4.1类与对象
4.2字段
4.3属性
4.3.1常规属性
4.3.2自动属性
4.4索引器
4.5方法
4.5.1方法的定义与使用
4.5.2变量作用域
4.5.3方法重载
4.5.4参数的个数不定问题——params
4.5.5ref与out
4.5.6this
4.6Main()函数
4.7构造函数
4.8static
4.9析构函数
4.10委托
4.10.1委托使用三步曲
4.10.2多播委托
4.11匿名方法
4.12Lambda表达式
4.13事件
4.13.1事件使用三步曲
4.13.2三类事件
4.14继承
4.14.1继承的实现
4.14.2抽象类及抽象方法
4.14.3类的密封
4.14.4继承过程中构造函数的执行及其顺序
4.14.5base
4.14.6protected修饰符
4.15多态
4.16接口
4.17匿名类型
4.18结构
4.18.1DateTime
4.18.2TimeSpan
4.19object类
4.19.1相等问题
4.19.2Type和GetType()
4.19.3ToString()
4.20问与答
4.20.1什么是命名空间?
4.20.2readonly与const究竟有何区别
4.20.3什么是分部类
4.20.4密封类的扩展——扩展方法
4.20.5is和as——兼谈如何让Singer 不要调用基类方法
4.20.6重载(overload)与重写(override)
4.20.7抽象方法和虚方法
4.20.8接口、抽象类、类与结构
4.20.9接口中有重名的方法该如何办
4.20.10base与this
4.20.11什么是运算符重载
4.20.12如何给自定义的结构定义相等逻辑
4.21思考与练习
第5章数组
5.1声明及初始化
5.2访问与遍历
5.3Array类
5.4聪明的数组——索引器
5.5问与答
5.5.1如何使用Array.Sort()来排序对象数组
5.5.2数组的大小真的没法调整吗
5.5.3如何判断数组中是否包含指定的元素
5.5.4如何查找数组中具有特定特征的元素
5.5.5索引器的参数类型一定要为int吗
5.5.6如何不计算即可获得值、小值、和值、平均值
5.6思考与练习
第6章字符串
6.1字符串及其转义符
6.1.1字符串及其构造
6.1.2字符转义
6.1.3 的多义性
6.2常用方法
6.2.1string类的方法
6.2.2字符串对象的方法
6.3StringBuilder
6.4编码
6.5问与答
6.5.1s=null与 s=string.Empty 与 s =””
6.5.2字符串与数组之间的互相转换
6.5.3字符串与字节数组之间的转换有何意义
6.5.4各种编码之间如何转换
6.5.5如何将文本朗读出来
6.6思考与练习
第7章WinForm初步
7.1窗体
7.1.1窗体常用属性
7.1.2窗体常用方法
7.1.3窗体常用事件
7.1.4窗体的生命周期
7.2控件常用操作
7.2.1控件添加
7.2.2控件调整
7.2.3控件分层
7.2.4控件定位
7.2.5控件大小
7.2.6控件锚定Anchor
7.2.7控件停靠Dock
7.2.8控件的Tab键顺序
7.3控件的键盘和鼠标事件
7.3.1键盘事件处理
7.3.2鼠标事件处理
7.4基本控件
7.4.1Label控件
7.4.2Button控件
7.4.3RadioButton控件
7.4.4CheckBox控件
7.4.5TextBox控件
7.4.6ListBox控件
7.4.7ComboBox控件
7.4.8PictureBox控件
7.4.9NumericUpDown控件
7.4.10ProgressBar控件
7.4.11HScrollBar控件和 VScrollBar控件
7.4.12TrackBar控件
7.4.13ToolTip控件
7.4.14GroupBox控件
7.4.15Panel控件
7.4.16MonthCalendar控件
7.5常用组件
7.5.1Timer组件
7.5.2ImageList组件
7.6菜单
7.6.1MenuStrip控件
7.6.2ContextMenuStrip控件
7.6.3ToolStrip控件
7.6.4StatusStrip控件
7.7对话框
7.7.1OpenFileDialog控件
7.7.2SaveFileDialog控件
7.7.3FontDialog控件
7.7.4ColorDialog控件
7.7.5FolderBrowserDialog控件
7.8高级控件
7.8.1RichTextBox控件
7.8.2CheckedListBox控件
7.8.3TabControl控件
7.8.4ListView控件
7.8.5TreeView控件
7.8.6WebBrowser控件
7.9COM组件
7.9.1Shockwave Flash Object
7.9.2Windows Media Player
7.10MDI
7.11问与答
7.11.1键盘事件KeyDown、KeyUp、KeyPress有何关系
7.11.2Click和MouseClick有何关系
7.11.3Enter、Leave事件与MouseEnter、MouseLeave事件有何关系
7.11.4如何弹出各类消息框
7.11.5多种鼠标事件有何关系
7.11.6如何获取应用程序的运行环境信息
7.11.7如何获取应用程序的运行目录
7.11.8如何实现轻量级的音频播放
7.11.9如何实现拖放
7.11.10关于剪贴板
7.11.11如何动态构建控件树
7.11.12如何实现窗体间的数据交互
7.11.13如何获取网页源代码
7.11.14如何实现非规则窗体及其无标题栏窗体的拖动
7.11.15如何实现列表框项的批量转换
7.12思考与练习
第8章文件
8.1文件系统
8.1.1驱动器访问
8.1.2目录访问
8.1.3文件访问
8.1.4路径
8.2文件处理流
8.2.1FileStream
8.2.2StreamReader与StreamWriter
8.2.3BinaryReader与BinaryWriter
8.3问与答
8.3.1using的作用
8.3.2如何创建临时文件
8.3.3如何比较两个文件是否一样
8.3.4如何发送邮件
8.4思考与练习
第9章集合与泛型
9.1集合
9.1.1ArrayList
9.1.2Queue
9.1.3Stack
9.1.4Hashtable
9.1.5SortedList
9.1.6BitArray
9.2泛型
9.2.1泛型类
9.2.2泛型类实例间的关系
9.2.3泛型及其前辈——object
9.2.4多参数的泛型类
9.2.5泛型方法
9.3泛型集合
9.3.1ListT
9.3.2QueueT和StackT
9.3.3DictionaryK,V和KeyValuePairK,V
9.3.4SortedListK,V
9.3.5HashSetT
9.4问与答
9.4.1集合中的元素应该如何正确删除
9.4.2如何使用内置排序器来实现ArrayList排序——IComparer
9.4.3如何完全自定义排序规则来排序
9.4.4IEnumerable和IEnumerator有什么作用和特性
9.4.5什么是可空类型(Nullable)
9.4.6什么是Tuple
9.4.7泛型变量的默认值是多少
9.4.8泛型的比较问题
9.4.9HashSetT的扩展方法
9.4.10集合的运算
9.5思考与练习
第10章GDI
10.1概述
10.2辅助绘图对象
10.2.1Point结构
10.2.2Size结构
10.2.3Rectangle结构
10.2.4Color结构
10.2.5Font类
10.2.6Graphics类
10.3基本绘图工具
10.3.1Pen
10.3.2Brush
10.4图像处理
10.4.1绘制多条直线
10.4.2绘制矩形
10.4.3绘制多边形
10.4.4绘制曲线
10.4.5绘制椭圆
10.4.6绘制图像
10.5坐标轴的平移、旋转与缩放
10.5.1坐标轴的平移
10.5.2坐标轴的旋转
10.5.3坐标轴的缩放
10.6常用应用
10.6.1格式转换
10.6.2水印
10.6.3灰化
10.6.4底片
10.6.5浮雕
10.6.6文本打印
10.7问与答
10.7.1如何实现网页颜色与Color的转换
10.7.2如何提取GIF动画中的各帧
10.7.3如何截屏
10.7.4Math类
10.8思考与练习
第11章多线程
11.1进程
11.2多线程基础操作
11.2.1创建线程
11.2.2启动线程
11.2.3线程优先级问题
11.2.4后台线程问题
11.2.5终止线程
11.2.6暂停线程
11.2.7合并线程
11.3线程同步
11.3.1lock
11.3.2Monitor
11.3.3Mutex
11.3.4ContextBoundObject
11.3.5ManualResetEvent
11.3.6AutoResetEvent
11.4线程池
11.5跨线程的控件访问
11.6多线程时的界面卡死问题
11.7BackgroundWorker组件
11.8问与答
11.8.1如何延时且界面不卡死
11.8.2如何使用匿名方法来创建线程
11.8.3如何使用Lambda表达式来创建线程
11.8.4如何向线程方法传递多个参数
11.8.5如何通过手动同步事件给多个线程加锁
11.9思考与练习
第12章序列化
12.1二进制序列化
12.2SOAP序列化
12.3XML序列化
12.4问与答
12.4.1采用二进制序列化时,从序列化后的文件能看到什么
12.4.2如何序列化到内存流
12.4.3反序列化时想使用被禁止序列化的字段该如何办
12.4.4属性在序列化时遵从什么样的规律呢
12.5思考与练习
第13章SQL
13.1数据库基本概念
13.2SQL学习环境及基本操作
13.2.1Microsoft SQL Server Management Studio
13.2.2数据库与表的基本SQL操作
13.3Insert
13.4Select
13.4.1手工方式
13.4.2Select语句
13.4.3查询指定字段
13.4.4排序
13.4.5过滤
13.4.6查询前n条记录
13.4.7模糊查询
13.4.8统计
13.4.9分组
13.4.10空值查询
13.5Update
13.6Delete
13.7问与答
13.7.1如果表名或者字段名中有空格该如何办
13.7.2修改数据表后无法保存怎么办
13.7.3如何只返回不重复的记录
13.7.4如何指定结果的列标题
13.7.5如何对查询到的结果进行一定的组合或者运算后呈现
13.7.6如何使用between关键字
13.7.7如何使用in关键字
13.7.8如何使用[]和[^]通配符
13.7.9compute子句如何使用
13.7.10什么是联合查询
13.7.11什么是嵌套查询
13.8思考与练习
第14章ADO.NET
14.1Connection
14.2Command
14.3DataReader
14.4DataAdapter
14.4.1DataAdapter及其使用范式
14.4.2DataAdapter增删改查使用示例
14.5DataSet
14.5.1DataSet及其使用范式
14.5.2DataSet增删改查示例
14.6参数化查询
14.7数据绑定
14.7.1相关控件与组件
14.7.2简单控件绑定
14.7.3复杂控件绑定
14.7.4数据绑定示例
14.8问与答
14.8.1记不住连接字符串的写法如何办
14.8.2Access数据库的连接字符串是怎样的
14.8.3连接Excel工作簿的连接字符串如何写
14.8.4将带有引号等的特殊内容(如HTML源代码)存储到数据库中
出错怎么办
14.8.5如何使用App.config文件
14.8.6如何使用DataTable
14.9思考与练习
第15章异常处理及调试
15.1异常处理
15.1.1异常处理的几种形式
15.1.2异常的抛出
15.1.3自定义异常
15.2调试
15.3条件断点
参考文献
內容試閱 :
C#是一种面向对象的现代化语言,兼具C语言的语法特征、Visual Basic的快速开发特征、Java的虚拟机运行特征,是.Net Framework框架下的语言。
在当前互联网信息新技术迅猛发展以及国家大力推广应用型人才培养的背景下,知识的传播方式更加灵活多样。学习人员越来越希望摆脱时空等限制,即不必在固定的一些时间段被限制于固定的场所由相对固定的人员指导学习。另外,目前大量的高校也越来越重视应用型人才培养。 为了达到此目标,势必在教材编写方式、内容组织、教辅材料等多个方面有新的要求。
鉴于以上新形势和要求,结合近几年教材在实际使用中各方的反馈,我们编著了本书。本书以通俗易懂的语言、生动有趣的示例来讲解C#多方面的基础而又重要的知识,具体囊括数据类型、运算符、程序控制、面向对象基础、数组、集合、字符串、文件、Windows Form程序设计、序列化、GDI 、多线程、SQL、ADO.Net等内容。
本教材具有如下典型特点。
(1) 内容实用。本教材包含了C#中为重要而又基础实用的内容,掌握了本书内容,可以轻松地继续学习其他相关高级知识。
(2) 语言表达通俗易懂。在保证准确性的前提下,语言表达尽可能让学生更易于接受。
(3) 针对重要的知识点提供配套微视频进行讲解,使得学生既可以自学或提前预习,进而提升教师课堂教学针对性和效率,也可以课后巩固学习。
(4) 示例代码难度、规模适中。学习新知识时,不是缺少长篇累牍的代码,而是缺少针对性强的精炼小示例。全书配套大量精选案例,深入浅出,读者更加容易理解所学知识。
(5) 案例设计融知识性、实用性、趣味性于一体。使得学生易于理解接受,且让学生感觉到学有所用,不会感到枯燥无味。
(6) 练习层层递进,注重梯度。从课堂练习→课堂思考→课后思考练习,综合性和难度逐步提升,逐步提升学生实战技能。
(7) 独具特色的问答环节设计。讲解容易混淆的问题,对课堂知识进行扩展,适用于不同层次的学生; 也为学有余力的读者开启学习更多新知识的窗口。
(8) 适用于不同课时的教学。通过内容的精心安排,可为不同高校或不同专业提供灵活的章节组合,以满足不同的课时和教学要求。
(9) 配套实验项目及习题解答教材,以及微视频、源代码、教学大纲、课件PPT、教学计划进度、模拟试卷等教辅材料,为教师教学和学生全方位学习提供了极大的方便。
本书可以用作下述课程的教材。
C#面向对象程序设计
.Net Framework程序设计
WinForm应用开发
.Net下的数据库应用开发
另外也可以作为如下课程的入门教材。
ADO.Net 入门
SQL入门
多线程入门
GDI 入门
本书代码开发工具使用了目前的Visual Studio 2017,但这并不意味着本书仅能适用于Visual Studio 2017。事实上,本书绝大多数代码基本可以在完全不作更改的情况下,运行于Visual Studio 2005及以后版本,也就意味着读者可以随意选择自己的Visual Studio版本,不必和本书完全一致。
另外,结合互联网信息技术,为教材提供配套微视频、课件、教学大纲、教学计划进度、源代码、模拟试题等多种材料,供学生全方位学习,供教师授课或读者自学使用,适应应用型本科院校相关课程教学和学习使用。
本书将部分简单的输出放到了注释中,且以倾斜加粗的格式标记; 非输出的注释文字格式则采用常规格式。如:
Listint list = new Listint();
list.Add(1);
list.Add(2);
int sum= 0;
for (int i = 0; i list.Count; i )
sum = list[i];//当初存入数值,取出的也是数值,无须转换
Console.WriteLine(”和值:” sum ); //和值:6 此处的 和值:6 表明为该语句的输出
参与本书校对工作的有王镇老师,以及19计科四班的杨春玉、潘佳玲等学生。同时,本书的出版离不开清华大学出版社贾斌老师的大力支持及辛勤工作,这里对他们的辛苦工作表示衷心的感谢。
限于时间精力和水平,本书难免还存在错误、疏漏或不严谨的地方。各位专家、老师和读者在使用过程中,如果发现任何问题,欢迎不吝赐教。
后,由于本书定位为基础教学,因此并未安排实践内容。本书的配套教材《C#程序设计——项目案例 实验教程 习题解答》中不但包含了本书各章的习题解答,而且也设计了各章的实验内容。更为重要的是,该书还设计了兼具趣味性、实用性的实践项目,规模适当,也便于读者自行扩充功能。这些实践项目将大幅提高读者对教材知识的理解、掌握和运用水平。
作者之前出版的《C#程序设计(第二版)》获浙江省“十二五”优秀教材,同时获浙江省“十三五”新形态教材项目立项,本书是浙江省“十三五”新形态教材成果。另外,编著者所承担的该门课程是浙江省一流本科课程建设项目。
编著者
2021年6月18日