新書推薦:
《
560种野菜野果鉴别与食用手册
》
售價:HK$
68.9
《
中国官僚政治研究(一部洞悉中国政治制度演变的经典之作)
》
售價:HK$
64.4
《
锂电储能产品设计及案例详解
》
售價:HK$
113.9
《
首辅养成手册(全三册)(张晚意、任敏主演古装剧《锦绣安宁》原著小说)
》
售價:HK$
124.2
《
清洁
》
售價:HK$
66.7
《
组队:超级个体时代的协作方式
》
售價:HK$
79.4
《
第十三位陪审员
》
售價:HK$
55.2
《
微观经济学(第三版)【2024诺贝尔经济学奖获奖者作品】
》
售價:HK$
159.9
|
編輯推薦: |
《C#从0到1:语法详解与案例实践》适合所有对C#感兴趣的读者阅读,也可以作为院校和培训机构相关专业的教材。
|
內容簡介: |
《C#从0到1:语法详解与案例实践》从初学者角度,通过通俗易懂的语言、贴近生活的实例,详细介绍了使用C#进行程序开发需要掌握的知识和技术。全书38章,内容包括C#简介、数据类型与变量、表达式与运算符、输入与输出、程序的流程控制、窗口设计、控件设计、图像设计等。书中所有知识都结合具体实例进行分析,案例的程序代码讲解详细,可以使读者轻松领会 C# 程序开发的精髓,快速提高开发技能。
|
目錄:
|
第1章C#和VisualStudio11-1认识C#21-1-1C#的起源21-1-2认识C#的开发者21-2认识.NET31-2-1.NET是什么31-2-2.NET的版本演变31-2-3认识.NETFramework、.NETCore、.NET31-3C#从编译到执行的概念41-3-1传统程序从编译到执行41-3-2认识微软.NET的跨平台概念41-4认识/下载/安装VisualStudio51-4-1认识VisualStudio的版本51-4-2下载VisualStudio61-4-3安装VisualStudio61-4-4安装VisualStudio其他模块61-4-5卸载VisualStudio61-5方案、项目和程序61-5-1认识方案、项目和程序61-5-2方案、项目和C#程序的默认扩展名71-5-3本书所设计的方案重点71-6控制台的应用程序类71-7本书的项目内容81-8创建、关闭与打开方案实例81-8-1创建控制台应用程序.NETFramework4.8方案81-8-2关闭方案91-8-3打开方案101-9创建.NET7.0的方案101-9-1创建控制台应用程序.NET7.0的方案101-9-2创建WindowsForms方案111-10查看方案文件夹121-10-1查看.NETFramework4.8的ch1_1方案121-10-2查看创建控制台应用程序.NET7.0的ch1_2方案131-10-3查看WindowsForms的ch1_3方案131-10-4方案和项目有相同的名称131-10-5方案和项目在相同的文件夹15第2章设计第一个C#程序172-1解析.NETFramework的C#语言结构182-1-1先前准备工作182-1-2引用命名空间的类182-1-3C#的基本结构192-1-4类class192-1-5Main()函数192-1-6方案ch2_2-C#程序的体验202-1-7执行方案202-2解析.NET7.0的C#语言结构202-2-1准备方案ch2_3212-2-2网址参考与批注符号212-2-3隐式using引用命名空间222-2-4Main()不见了232-2-5转换成Program.Main样式程序232-2-6执行C#的方案232-3不使用顶级语句242-4认识C#的可执行文件24第3章数据类型与变量263-1变量名的使用273-1-1认识C#语言的变量273-1-2认识不需事先声明变量的程序语言283-2变量的声明283-2-1基本概念283-2-2var变量的声明293-2-3GetType()293-3基本数据类型303-4整数数据类型303-4-1整数基本概念303-4-2整数数据类型的属性323-4-3不同进制的整数323-4-4千位分隔符333-4-5整数的后缀字符333-4-6sizeof()333-5浮点数数据类型343-5-1浮点数基本概念343-5-2浮点数数据类型的属性353-5-3浮点数的后缀字符353-5-4科学记数法353-5-5千位分隔符363-5-6sizeof()363-5-7认识float和double的NaN和无限大363-6字符数据类型373-6-1使用sizeof()函数列出字符长度373-6-2设定字符的常值373-6-3输出一般符号383-6-4转义字符383-7字符串数据类型393-7-1字符串内含有转义字符403-7-2@字符与字符串403-7-3撰写多行字符串403-8布尔值数据类型413-9object数据类型413-9-1object数据类型413-9-2ValueType数据类型413-9-3装箱423-9-4拆箱423-9-5拆箱/装箱与泛型423-10dynamic数据类型433-11变量的默认值default433-12数据类型的转换443-12-1隐式转换443-12-2显式转换453-13const常量463-14与null463-15值数据类型与引用数据类型473-16匿名数据类型47第4章表达式与运算符494-1程序设计的专有名词504-1-1程序代码504-1-2表达式504-1-3运算符与操作数504-1-4操作数也可以是一个表达式504-1-5指定运算符514-1-6C#语言可以一次指定多个运算符为相同的值514-1-7单元运算符514-1-8二元运算符514-1-9三元运算符524-2算术运算524-2-1基础算术运算符号524-2-2负号(-)运算534-2-3运算符优先级544-2-4程序代码指令太长时的分行处理554-3不同数据类型混合应用564-3-1整数和字符混合使用564-3-2开学了学生买球鞋564-4递增和递减表达式564-5复合表达式574-5-1复合表达式基础574-5-2新版C#空合并赋值运算符584-6专题594-6-1圆周率594-6-2计算圆柱体积60第5章位运算625-1Convert.ToString()方法635-2位运算基础概念635-2-1基础位运算635-2-2复合式位运算645-3&运算符645-4|运算符655-5^运算符665-6~运算符665-7<<运算符675-8>>运算符675-9运算符优先级68第6章输入与输出706-1Console.WriteLine()716-1-1输出字符串716-1-2参数是字符串和对象716-1-3字符串插补716-1-4格式化数字的输出726-1-5格式化日期与时间的输出726-1-6格式化预留输出空间与对齐方式736-1-7格式化货币符号输出746-1-8控制台输出颜色控制746-1-9设计控制台窗口大小756-1-10取得并设定光标的位置756-2Console.Write()766-3Console.Read()/Console.ReadKey()/Console.ReadLine()766-3-1Console.Read()766-3-2Console.ReadKey()776-3-3Console.ReadLine()776-4其他常用的屏幕方法776-5数据的转换786-5-1读取数据时使用Parse()转换786-5-2读取数据时使用TryParse()转换796-5-3Convert类的方法796-6日期格式的转换806-7Math类816-7-1Math类的数学常数816-7-2Math类的三角函数816-7-3Math类常用的方法826-8专题836-8-1银行存款复利的计算836-8-2价值衰减的计算836-8-3计算地球到月球所需时间836-8-4计算坐标轴两个点之间的距离846-8-5房屋贷款问题实操846-8-6使用反余弦函数计算圆周率856-8-7鸡兔同笼—解联立方程式85 第7章程序的流程控制897-1关系运算符907-2逻辑运算符907-3完整C#运算符优先级表917-4if语句927-5if…else语句937-6if…elseif…else语句947-7与流程控制有关的特殊表达式957-7-1e1e2:e3特殊表达式957-7-2特殊表达式967-8switch语句967-9goto语句987-10专题997-10-1BMI指数计算997-10-2闰年计算997-10-3判断成绩并输出适当的字符串1007-10-4十二生肖系统1007-10-5火箭升空1017-10-6简易的人工智能程序—职场兴趣方向测验1017-10-7输出每个月有几天1027-10-8is和isnot关键词102第8章程序的循环设计1068-1for循环1078-1-1单层for循环1078-1-2for语句应用到无限循环中1098-1-3双层或多层for循环1108-1-4for循环指标递减设计1118-2while循环1128-2-1单层while循环1128-2-2while语句应用到无限循环1138-2-3双层或多层while循环1138-3do…while循环1148-3-1单层do…while循环1148-3-2do…while语句的无限循环1168-3-3双层或多层do…while循环1168-4循环的选择1168-5break语句1178-6continue语句1188-7随机数Random类1188-7-1创建随机数对象1198-7-2随机数方法Next()1198-7-3随机数种子1198-8休息方法1208-9专题1208-9-1计算平均成绩和不及格人数1208-9-2猜数字游戏1218-9-3认识欧几里得算法1218-9-4计算圆周率1228-9-5鸡兔同笼—使用循环计算1238-9-6国王的麦粒1238-9-7离开无限循环并结束程序的Ctrl C键1248-9-8银行账户冻结1248-9-9自由落体1258-9-10罗马数字1258-9-11定时器设计125第9章数组1309-1一维数组1319-1-1基础概念1319-1-2数组的声明1319-1-3数组声明与初始值设定1329-1-4读取一维数组的输入1339-1-5一维数组的应用实例1339-1-6一维数组的方法1349-1-7object数组1349-2二维数组1359-2-1基础概念1359-2-2二维数组的初始值设定1359-2-3二维数组的应用实例1369-2-4二维数组与匿名数组1369-2-5二维数组的应用解说1379-3更高维的数组1389-3-1基础概念1389-3-2三维或更高维数组的应用解说1389-4匿名数组1389-5foreach遍历数组1399-6Array类1409-6-1Array类的属性1409-6-2Array类的方法1409-6-3清除数组内容Clear()1419-6-4Copy()方法1419-6-5GetLength()/GetLowerBound()/GetUpperBound()1419-6-6SetValue()/GetValue()1429-6-7IndexOf()1429-6-8Reverse()/Sort()1429-6-9BinarySearch()1439-7不规则数组1439-7-1基础概念1439-7-2声明不规则数组1449-7-3声明不规则数组并设定初始值1449-7-4不规则数组与匿名数组1459-8排序原理与实操1459-8-1排序的概念与应用1469-8-2排序实操1479-9专题1489-9-1斐波那契数列1489-9-2二维数组乘法1499-9-34×4魔术方块1509-9-4基础统计1519-9-5不规则数组的专题152第10章字符和字符串的处理15810-1字符Char类15910-2字符Char类常用的方法15910-2-1与字符有关的方法15910-2-2判断数字和字母的方法16010-2-3判断大小写字母的方法16010-2-4判断符号的方法16010-2-5判断是不是标点符号的方法16110-3字符数组与字符串16110-4字符串String类16210-4-1基础概念16210-4-2字符串的属性Length16210-4-3定义null或空字符串16210-4-4const关键词应用到字符串16310-4-5字符串连接“ ”符号16310-4-6字符串引用16310-5字符串String类常用的方法16410-5-1与字符串有关常用的方法16410-5-2更改字符串字母大小写16510-5-3首字母大写的转换16510-5-4字符串结合Concat()16510-5-5字符串比较16610-5-6字符串截取Substring()16710-5-7回传字符串出现的索引位置16710-5-8回传是否包含特定字符串Contains()16710-5-9字符串替换Replace()16810-5-10字符串分割Split()16810-5-11删除字符串前后的空格符Trim()16810-5-12移除字符串指定内容Remove()16910-5-13字符串是否由特定内容开始或结尾16910-5-14格式化字符串Format()16910-5-15插入字符串Insert()16910-5-16填充字符17010-5-17IsNullOrEmpty()和IsNullOrWhiteSpace()17010-6StringBuilder类17110-6-1创建StringBuilder字符串变量17110-6-2StringBuilder字符串变量的属性17210-7StringBuilder类常用的方法17210-7-1与字符串有关常用的方法17210-7-2将StringBuilder字符串转为String字符串ToString()17210-7-3清除字符串Clear()17310-7-4将指定内容加到对象末端Append()17310-7-5将指定内容插入对象Insert()17310-7-6内容替换Replace()17410-8专题17410-8-1判断是不是输入英文字母17410-8-2仿真输入账号和密码17510-8-3创建字符串数组然后输出键值17510-8-4计算句子各类字符数17510-8-5字符串比较与object175第11章集合17811-1认识.NET的集合17911-2System.Collections命名空间17911-3动态数组ArrayList17911-3-1创建ArrayList对象17911-3-2ArrayList的常用属性18011-3-3ArrayList的常用方法18011-3-4初始化ArrayList对象元素内容18011-3-5遍历ArrayList对象18111-3-6增加元素Add()和AddRange()18111-3-7插入元素Insert()18211-3-8是否包含特定元素Contains()18211-3-9删除元素Clear()/Remove()/RemoveAt()/RemoveRange()18211-3-10回传元素出现的位置IndexOf()/LastIndexOf()18311-3-11元素重新排列Sort()/Reverse()18411-4哈希表18411-4-1创建哈希表对象18411-4-2哈希表的常用属性18411-4-3哈希表的常用方法18411-4-4增加元素Add()18511-4-5初始化哈希表18511-4-6遍历哈希表18511-4-7遍历键/遍历值18611-4-8查询键/值Contains()/ContainsKey()/ContainsValue()18611-4-9清除哈希表的元素Clear()/Remove()18711-5专题18711-5-1设计星座密码18711-5-2哈希表依照键排序188第12章函数的应用19012-1函数的体验19112-1-1基础概念19112-1-2转换成Program.Main样式程序19212-2函数的主体19212-2-1函数声明19212-2-2函数中传递参数的设计19212-2-3函数中不同类型的参数设计19312-3函数的回传值return19412-3-1整数回传值的应用19412-3-2浮点数回传值的应用19412-3-3字符回传值的应用19512-3-4return让程序提早结束19512-4一个程序有多个函数的应用19512-4-1简单的调用19512-4-2函数间的调用19512-4-3函数是另一个函数的参数19612-5递归函数的调用19712-5-1从掉入无限递归说起19712-5-2非递归设计阶乘数函数19812-5-3从一般函数进化到递归函数19912-5-4递归后记20112-6数组数据的传递20112-6-1传递数据的基础概念20112-6-2数组的传递20112-6-3函数调用—数据交换使用ref参数20212-6-4函数调用—回传数据用关键词out20312-6-5函数调用—只读关键词in20312-6-6函数调用—可变动数量参数params20412-6-7传递二维数组数据20412-6-8匿名数组20512-7命令行的输入20612-7-1Main()方法20612-7-2顶级语句方法20712-8全局变量与局部变量20712-9Expression-BodiedMethod20812-10dynamic函数与参数20812-11专题20912-11-1设计质数测试函数20912-11-2抽奖程序设计20912-11-3使用递归方式设计斐波那契数列21012-11-4设计欧几里得算法函数210第13章C#结构数据struct21513-1结构数据类型21613-1-1基本概念21613-1-2存取修饰词21713-2声明结构变量21713-2-1声明结构变量方法21713-2-2使用结构成员21713-3创建结构数据21713-3-1读取数据21813-3-2初始化结构数据21813-4将结构对象的内容设置给另一个结构对象21813-5嵌套的结构21913-6C#结构struct的特色22013-7new创建结构对象22113-8结构数据与数组22113-9struct的建构方法22213-10数据封装—结构的set和get22213-11readonly字段22313-12with关键词22413-13专题22413-13-1找出最高分学生的姓名和分数22413-13-2平面坐标系统225第14章列举enum22714-1定义列举enum的数据类型声明变量22814-2定义列举enum元素的整数值22914-2-1定义enum从元素1开始编号22914-2-2定义列举enum元素数值不连续23014-2-3不规则定义列举enum元素值23114-3列举的转换23114-4专题23114-4-1enum的使用目的23114-4-2百货公司折扣232第15章日期和时间23515-1DateTime的建构方法与属性23615-1-1创建DateTime对象23615-1-2取得DateTime对象属性23615-1-3基础属性的认识23715-1-4TimeOfDay/DayOfWeek/DayOfYear23715-1-5Now/UtcNow23715-1-6刻度数Ticks23815-2ToString()方法与输出日期与时间格式23815-3DateTime的方法23915-3-1日期加法相关函数的应用24015-3-2日期比较相关函数的应用24015-3-3月份的天数DaysInMonth()24115-3-4是否闰年IsLeapYear()24115-3-5长/短日期与时间格式和字符串24115-3-6解析时间与日期字符串24215-4文化特性CultureInfo类24315-4-1取得目前操作系统的文化名称24315-4-2日期与时间格式24315-5TimeSpan建构方法与属性24415-5-1TimeSpan建构方法24415-5-2TimeSpan的属性24415-6DateTime和TimeSpan的混合应用24515-7TimeSpan类常用的方法24615-7-1时间间隔加法Add()24615-7-2时间间隔减法Subtract()24715-7-3解析字符串为时间间隔Parse()和TryParse()24715-8专题24815-8-1var与运算符应用在DateTime和TimeSpan类中24815-8-2设计一个休息秒数函数24815-8-3设计一个时钟249第16章类与对象25116-1认识对象与类25216-2定义类与对象25316-2-1定义类25316-2-2声明并创建类对象25516-3类的基本实例25516-3-1创建类的字段25516-3-2存取类的成员25516-3-3不使用顶级语句创建含类的方案25616-3-4命名空间、顶级语句与插入类25716-4值型与引用型25816-5类的方法26016-6一个类含多个对象的应用26016-6-1一个类含多个对象的应用26016-6-2创建类的对象数组26116-7再谈方法26116-7-1基本参数的传送26116-7-2认识形参与实参26216-7-3方法的回传值26316-8变量的有效范围26316-8-1for循环的索引变量26316-8-2局部变量26416-8-3类内成员变量与方法变量有相同的名称26416-9部分类26516-10专题26616-10-1计算面积26616-10-2创建并输出员工数据26616-10-3Expression-BodiedMethod当作类的方法26616-10-4匿名类267第17章对象的建构、属性与封装26917-1建构方法27017-1-1默认的建构方法27017-1-2自建建构方法27117-1-3再谈this关键词27117-1-4析构方法27217-2重载27317-2-1从Console.WriteLine()看重载定义27317-2-2把重载应用到建构方法27417-2-3把重载应用在一般方法中27517-2-4认识方法签名27617-3类成员的访问权限—封装27617-3-1基础概念27617-3-2类成员的访问控制27717-3-3设计具有封装效果的程序27817-4属性成员27817-4-1基本概念27817-4-2表达式主体方法应用到属性中27917-4-3自动实操属性27917-4-4自动属性初始值设定27917-4-5属性初始化28017-4-6为属性增加逻辑判断28017-5类的只读和常数字段28017-5-1const应用在类字段中28117-5-2只读28117-6静态关键词28217-6-1类中的静态字段28217-6-2类中的静态方法28317-6-3静态类28317-6-4静态建构方法28417-6-5扩展方法28417-7索引器28517-8专题28617-8-1建构方法与数学类的应用28617-8-2银行存款与提款28617-8-3将static用于NBA球员人数统计28717-8-4星期信息转成索引287第18章继承与多态28918-1继承29018-1-1从3个简单的C#程序谈起29018-1-2继承的语法29118-1-3观察父类建构方法的调用29218-1-4父类属性为public时子类初始化父类属性29318-1-5父类属性为private时调用父类建构方法—关键词this29318-1-6存取修饰符protected29518-1-7将字段改为属性概念29618-1-8分层继承29618-1-9多层次继承29718-1-10继承类型总结与陷阱29818-1-11父类与子类有相同的成员变量名称29918-2IS-A和HAS-A关系30018-2-1IS-A关系与is30018-2-2HAS-A关系—聚合30118-2-3HAS-A关系—组合30218-3对C#程序代码太长的处理30318-4多态30418-4-1编译时多态30518-4-2重写30518-4-3new关键词30618-4-4重写使用virtual和override30718-4-5运行时多态30718-5静态绑定与动态绑定30818-6嵌套类30818-7sealed类30918-7-1把sealed应用在类中30918-7-2把sealed应用在方法中31018-8专题31018-8-1薪资计算31018-8-2面积计算31018-8-3多态的应用31118-8-4重写ToString()311第19章抽象类31419-1使用抽象类的场合31519-2抽象类基本概念31619-3抽象方法的基本概念31719-4抽象类与抽象方法概念整理31819-5抽象类的建构方法31919-6运行时多态应用到抽象类中31919-7专题32019-7-1数学计算32019-7-2正方形面积计算32019-7-3多态应用—数组概念扩充计算不同外形面积程序321第20章接口32320-1认识接口32420-1-1基本概念32420-1-2使用upcasting实现接口32520-1-3为什么使用接口32520-2接口实例32620-2-1两个类实现一个接口32620-2-2多层次继承与实现32620-2-3接口方法内含参数32720-3显式实现32720-4接口属性实现32820-5多重继承与实现32820-6虚拟接口方法33020-7专题33120-7-1接口有相同的抽象方法33120-7-2事务历史记录33120-7-3将虚拟接口方法应用在交通工具上331第21章认识泛型33421-1从重载定义说起33521-1-1交换函数Swap()33521-1-2object数据类型33521-2认识泛型33621-2-1基础应用33621-2-2泛型函数—参数是数组33721-3泛型类33721-4泛型类—字段与属性33821-4-1定义泛型类—内含一个字段33821-4-2定义泛型类—内含一个属性33921-4-3定义泛型类—内含多种数据类型33921-4-4定义泛型类—内含数组字段34021-5泛型类—方法34021-5-1泛型方法的参数是泛型34021-5-2泛型方法内有一般参数34121-5-3泛型方法的数据类型是泛型34121-6含有泛型方法的一般类34221-7泛型方法重载34221-7-1一般类中的泛型方法重载34221-7-2泛型类中的泛型方法重载34321-8专题34321-8-1创建数组与输出数组34321-8-2仿真栈操作343第22章泛型集合34522-1System.Collections.Generic34622-2List列表34622-2-1创建List对象34622-2-2List的属性34722-2-3List方法34722-3Stack栈34822-3-1创建Stack对象34822-3-2Stack的属性34922-3-3Stack方法34922-4Queue队列35022-4-1创建Queue对象35022-4-2Queue的属性35022-4-3Queue方法35122-5LinkedList链表35122-5-1创建LinkedList对象35122-5-2LinkedList的属性35222-5-3LinkedList方法35222-6SortedSet集合35322-6-1创建SortedSet对象35322-6-2SortedSet的属性35322-6-3SortedSet方法35422-7Dictionary集合35422-7-1创建Dictionary对象35422-7-2Dictionary的属性35522-7-3Dictionary方法35622-8SortedList集合35722-8-1创建SortedList对象35722-8-2SortedList的属性35822-8-3SortedList方法35922-9SortedDictionary集合359第23章元组(Tuple)36223-1元组的功能36323-2元组声明36323-2-1早期C#4.0的Tuple36323-2-2C#7.0至今的Tuple36323-3存取元组元素内容36323-3-1Item属性36323-3-2Rest属性36423-4创建嵌套元组36523-5设定元素名称36523-6元组赋值设定36623-7将==和!=符号用于元组比较36623-8把元组当作方法的参数进行传递36623-9把元组当作方法的回传值36723-10专题36723-10-1到学校的距离36723-10-2数据交换程序设计36723-10-3计算最大值与最小值368第24章程序调试与异常处理37024-1程序异常37124-1-1一个除数为0的错误37124-1-2撰写异常处理程序try-catch37124-1-3try-catch-finally37224-2C#的异常信息37324-3设计多组异常处理程序37424-3-1常见的异常对象37424-3-2设计捕捉多个异常的程序37424-4捕捉所有异常37524-4-1再谈try-catch37524-4-2Exception37624-5抛出异常37624-6创建自己的异常名称37724-7程序调试的典故37724-8专题37824-8-1函数的参数是null时将产生异常37824-8-2银行密码长度测试37924-8-3温度异常379第25章正则表达式38125-1正则表达式基础38225-1-1认识Regex.IsMatch()方法38225-1-2正则表达式基础38225-1-3使用大括号{}处理重复出现的字符串38325-1-4处理市区电话字符串的方式38325-1-5用括号分组38425-1-6用小括号处理区域号码38425-1-7使用管道|38425-1-8使用号做搜寻38525-1-9使用*号做搜寻38525-1-10使用 号做搜寻38525-1-11大小写忽略RegexOptions.IgnoreCase38525-1-12正则表达式量次的表38625-2正则表达式的特殊字符38625-2-1特殊字符表38725-2-2单一字符使用通配符中的“.”38825-2-3字符分类38825-2-4字符分类的^字符38825-2-5所有字符使用通配符中的“.*”38825-2-6特殊字符$38925-2-7特殊字符^38925-3IsMatch()方法的万用程序与功能扩充38925-4找出第一个匹配搜寻规则的内容Regex.Match()39025-4-1搜寻第一次出现的内容39025-4-2Match对象的NextMatch()方法39025-5找出所有匹配搜寻规则的内容Regex.Matches()39125-6字符串修改Regex.Replace()39125-7正则表达式的分割Regex.Split()39225-8专题39325-8-1搜寻A开头的国际品牌39325-8-2电话号码的隐藏39325-8-3删除英文称呼39325-8-4测试网址是否正确39425-8-5信息加密394第26章委托39626-1认识委托39726-2委托操作39726-2-1声明委托39726-2-2设计目标方法39726-2-3创建委托对象实例并设定目标方法—常见用法39826-2-4创建委托对象实例并设定目标方法—简化用法39826-2-5调用委托39826-2-6简单的委托实例39826-2-7调整委托指向39926-3把委托当作方法的参数40026-4多播委托40026-5泛型委托40126-6匿名方法40126-6-1基础匿名方法40126-6-2匿名方法引用外部的变量40226-6-3把匿名方法当作参数传送40226-7Func委托40226-8Action委托40326-9Predicate委托403第27章Lambda表达式40627-1Lambda表达式定义40727-2Lambda基础语法40727-2-1没有输入参数的Lambda40727-2-2有1个输入参数的Lambda40727-2-3有多个参数的Lambda40727-3Lambda基础实例40727-3-1表达式的Lambda40727-3-2语句的Lambda40827-4Lambda就是委托指定引用的匿名方法40827-5将Lambda表达式转换成delegate委托类型40927-5-1将Lambda转成Func委托40927-5-2将Lambda转成Action委托41027-6外在变量对Lambda表达式的影响41027-7专题41127-7-1创建产生随机数的Lambda表达式41127-7-2创建计算圆面积的Lambda表达式41127-7-3基础数学运算的Lambda表达式41127-7-4创建账号长度测试41127-7-5Lambda应用在筛选数据中412第28章事件41428-1认识事件41528-2第一个C#事件与处理程序41528-2-1声明一个事件41528-2-2设计事件触发位置41528-2-3注册事件41628-2-4第1个事件实例41628-3C#内置的事件处理程序委托41728-4传递事件数据41728-5传送自定义时间数据41828-6专题419第29章基础Windows窗口设计42029-1创建新的项目42129-2认识VisualStudio窗口环境42229-2-1认识VisualStudio窗口42229-2-2切换程序设计区内容42329-2-3执行方案ch29_142329-3查看ch29_1文件夹42429-3-1查看方案文件夹42429-3-2查看项目文件夹42429-3-3查看可执行文件的文件夹42429-4认识主要窗口区域42529-4-1从窗体设计模式到窗体程序代码模式42529-4-2从窗体程序代码设计模式切换回窗体设计模式42529-4-3主要窗口显示更多程序内容42529-4-4关闭主要窗口的标签内容42629-5工具箱42629-5-1显示工具箱42629-5-2固定工具箱位置42629-5-3浮动工具箱42729-6新增或删除窗体42729-6-1新增窗体42729-6-2删除窗体42829-7窗体属性42829-7-1窗体设计属性42929-7-2窗体杂项Misc42929-7-3窗体外观属性42929-7-4窗体行为43329-7-5窗体布局43329-7-6窗口样式属性43529-8窗体事件43529-8-1打开窗体事件的方法43529-8-2常见的窗体事件43729-8-3输出对话框43729-9解析WindowsForms窗口项目程序43729-9-1解析Form1.cs和Form1.Designer.cs43829-9-2解析Program.cs43929-10在窗体内创建与布局控件43929-10-1创建控件的方法43929-10-2使用方法1创建Button控件实例43929-10-3使用方法2创建Label控件44029-10-4控件的大小调整44029-10-5控件位置的调整44029-10-6创建多个相同的控件44029-10-7删除与撤消删除控件44129-10-8对齐窗体中央44129-10-9调整水平间距44129-10-10调整垂直间距44129-10-11多个控件的对齐44229-11专题44229-11-1用程序设计属性44229-11-2启动窗口有对话框44329-11-3创建多个窗体443第30章基础控件设计44530-1控件设定知识的复习44630-2Button功能按钮44630-2-1Button常用属性44630-2-2Button常用事件44730-2-3Button项目实例44730-2-4新增快捷键44830-2-5Name属性44930-2-6认识事件处理程序的参数objectsender44930-2-7执行系统应用程序45030-3Label标签45130-3-1Label常用属性45130-3-2Label常用事件45130-3-3Label项目实例45130-4TextBox文本框45330-4-1TextBox常用属性45330-4-2TextBox常用事件45430-4-3TextBox显示文字的实例45430-4-4数值转换的应用45530-4-5异常发生45630-4-6TextChanged事件实例45730-4-7选取文件实例45830-5MessageBox消息框45830-6RadioButton单选按钮46030-6-1RadioButton常用属性46130-6-2RadioButton常用事件46130-6-3单选按钮的基础实例46130-7CheckBox复选框46330-7-1CheckBox常用属性46330-7-2CheckBox常用事件46330-7-3复选框的基础实例46330-8容器—GroupBox分组框46430-9容器—Pane面板控制46530-10ListBox清单46630-10-1ListBox常用属性46630-10-2使用字符串集合编辑器创建列表46630-10-3ListBox常用的方法46730-10-4使用程序选取或取消选取项目46830-10-5ListBox常用事件46930-10-6综合应用47030-11ComboBox下拉组合框47130-11-1ComboBox常用属性47130-11-2ComboBox事件47230-12CheckedListBox复选框清单47430-12-1CheckedListBox常用属性47430-12-2CheckedListBox常用的方法47430-12-3CheckedListBox事件47430-13鼠标事件47630-13-1体会鼠标事件实例47730-13-2事件的EventArgse参数47730-14键盘事件47830-14-1KeyDown和KeyUp事件47830-14-2KeyPress事件478第31章静态图像迈向动态图像设计48231-1PictureBox图片框48331-1-1PictureBox常用属性48331-1-2程序设计图片框位置48331-1-3程序设计图像大小48431-1-4加载与删除图像48431-1-5静态到动态图像实例48431-2把图像应用在窗体背景中48631-3把图像应用在Button中48631-4内含图像的标签48731-5ImageList图像列表48731-5-1创建控件与图像列表关联48731-5-2创建图像列表内容48831-5-3创建动态火柴人48831-6Timer定时器控件48931-6-1创建控件与图像列表关联48931-6-2启动与结束计时功能49031-6-3定时器原理49031-6-4走马灯的设计49031-7专题49031-7-1先前准备工作49031-7-2摆翅的蝴蝶49131-7-3移动的蝴蝶—翅膀没有摆动49131-7-4飞舞的蝴蝶492第32章常用的控件49432-1ToolTip提示说明49532-1-1ToolTip常用属性49532-1-2ToolTip常用方法49532-2DateTimePicker日期时间选择器49632-2-1DateTimePicker最重要的属性Value49632-2-2DateTimePicker格式化的属性Format49732-2-3几个其他常用的属性49832-2-4常使用的事件49832-2-5定时器应用49932-3MonthCalendar月历49932-3-1MonthCalendar的属性—粗体设定日期49932-3-2MaxDate和MinDate属性50132-3-3ShowToday和ShowTodayCircle属性50132-3-4选取日期相关属性50132-3-5日历常用事件50232-4NumericUpDown控件50332-4-1NumericUpDown常用属性50332-4-2NumericUpDown常用方法50332-4-3NumericUpDown常用事件50332-4-4定时器设计50332-5共享事件50532-5-1用程序代码处理共享事件50532-5-2属性窗口处理共享事件505第33章创建菜单和工具栏50733-1MenuStrip菜单50833-1-1请创建ch33_1.sln方案50833-1-2MenuStrip工具50833-1-3创建菜单50833-1-4认识菜单50933-1-5创建文件菜单50933-1-6创建文件同层级的项目50933-1-7创建文件的子层级项目50933-1-8插入项目分隔线51033-1-9插入、移动和删除项目51033-1-10创建更深一层的菜单项51133-1-11查看菜单项的Name和Text属性51233-1-12项集合编辑器51333-1-13菜单项的属性51433-1-14菜单与事件51633-2ContextMenuStrip快捷菜单51733-2-1请创建ch33_3.sln方案51733-2-2ContextMenuStrip工具51733-2-3创建快捷菜单51833-2-4将控件与快捷菜单创建关联51833-2-5快捷菜单的实例51933-3ToolStrip工具栏52033-3-1ToolStrip工具521
|
內容試閱:
|
约20年前,Microsoft公司推出了C# 1.0版,笔者就想提笔撰写相关书籍,但一直忙碌而耽搁至今。这20年来,整个C#的界面与功能已经完全翻新,如今终于完稿,笔者内心是喜悦的。
多次和计算机教育界的朋友闲谈,大家公认C#是非常重要的程序语言,也是计算机系的学生或相关领域的工程师的程序语言。大家也一至觉得C#不容易学习,许多人学习C#都感到很辛苦,原因如下:
(1)市面上的书籍没有从C#基础语法开始介绍。
(2)C#已经进化到顶级语句(Top-Level Statement)观念,很少有书籍介绍或说明。
(3)C#其实是面向对象的语言,很多书籍对此观念讲解太肤浅。
(4)C#博大精深,很多书籍在读者尚未了解C#时,就使用窗口程序做介绍,导致读者理解不扎实。
(5)C#已经进化到10.0版,许多书籍没有介绍新的语法,读者花时间辛苦阅读,好像书中内容都会了,但学完无法进入C#实战世界,看到专家所写的程序通通不懂。
本书则是从最新语法的C#程序设计入门开始,讲解面向对象的程序设计、系统资源及高阶语法。本书总共用了28章介绍C#的语法与基本应用,当读者了解这些内容后,第29章才开始介绍窗口程序设计,之后也会讲解文件的输入与输出、语音与影片、LINQ、多窗体设计等进阶应用。
为了帮助读者掌握C#,本书讲解语法时加入了许多项目实操案例,如BMI指数系统设计、银行贷款系统设计、咖啡馆销售管理系统设计、订房系统设计等。书中的案例代码、附录及习题解答,可以扫描下方二维码查看。
笔者写过许多计算机书籍,本书沿袭笔者著作的特色,程序实例丰富。相信读者依照本书学习后可以快速精通C#。本书虽力求完美,但谬误难免,尚祈读者不吝指正。
洪锦魁
2024年8月
|
|