首页 > > > 2010版传智播客.NET【C#编程基础】全部课件.pdf

2010版传智播客.NET【C#编程基础】全部课件.pdf

2010版传智播客.NET【C#编程基础】全部课件.pdf

上传者: chys 2011-04-23 评分1 评论0 下载55 收藏10 阅读量882 暂无简介 简介 举报

简介:本文档为《2010版传智播客.NET【C#编程基础】全部课件pdf》,可适用于硬件技术领域,主题内容包含传智播客传智播客传智播客传智播客NETNETNETNET视频学习课件视频学习课件视频学习课件视频学习课件访问访问访问访问NETNETNETNET网站符等。

传智播客传智播客传智播客传智播客.NET.NET.NET.NET视频学习课件视频学习课件视频学习课件视频学习课件 访问访问访问访问.NET.NET.NET.NET网站了解更多课程详情网站了解更多课程详情网站了解更多课程详情网站了解更多课程详情 http://net.itcast.cn (小提示小提示小提示小提示::::为什么本书中超链接打不开?为什么本书中超链接打不开?为什么本书中超链接打不开?为什么本书中超链接打不开?)))) 此套课件是伴随 传智播客.net 实况教学视频 (小提示:为什么本书中超链接打不开?)小提示:为什么本书中超链接打不开?)小提示:为什么本书中超链接打不开?)小提示:为什么本书中超链接打不开?) 的上课课件,作为传智播客.net 公开课的一部分,免费提供给广大.net 爱好者,您可以 自由分享本套课件,但禁止把他用于任何盈利性质的销售行为。否则我们将采取法律手 段来维护我们的正当权益。课件的知识产权归属传智播客。 谢谢您的支持与理解! 观看须知观看须知观看须知观看须知 1.1.1.1.PdfPdfPdfPdf是什么?是什么?是什么?是什么? 我怎么看不了?我怎么看不了?我怎么看不了?我怎么看不了? pdfpdfpdfpdf是一种电子书格式是一种电子书格式是一种电子书格式是一种电子书格式,,,,本套课件需要安装了本套课件需要安装了本套课件需要安装了本套课件需要安装了pdfpdfpdfpdf的软件才可以观看的软件才可以观看的软件才可以观看的软件才可以观看。。。。推荐推荐推荐推荐 "Foxit"Foxit"Foxit"Foxit reader"(reader"(reader"(reader"(资源里有安装软件,直接安装就可以。已经用卡巴斯资源里有安装软件,直接安装就可以。已经用卡巴斯资源里有安装软件,直接安装就可以。已经用卡巴斯资源里有安装软件,直接安装就可以。已经用卡巴斯基基基基 2010201020102010杀毒,请放心安装杀毒,请放心安装杀毒,请放心安装杀毒,请放心安装)))) 2.2.2.2.在观看过程点击链接报安全提示?在观看过程点击链接报安全提示?在观看过程点击链接报安全提示?在观看过程点击链接报安全提示? 没法打开电子书中的链接?没法打开电子书中的链接?没法打开电子书中的链接?没法打开电子书中的链接? AAAA用用用用FoxitFoxitFoxitFoxit ReaderReaderReaderReader 观看解决办法:观看解决办法:观看解决办法:观看解决办法: 请找到软件中请找到软件中请找到软件中请找到软件中 工具工具工具工具----------------选项选项选项选项--------------------左侧信任管理器左侧信任管理器左侧信任管理器左侧信任管理器------------右边右边右边右边““““启用安全阅读模启用安全阅读模启用安全阅读模启用安全阅读模 式式式式””””去掉去掉去掉去掉““““钩钩钩钩””””即可。即可。即可。即可。 BBBB 用用用用AdobeAdobeAdobeAdobe ReaderReaderReaderReader观看解决办法:观看解决办法:观看解决办法:观看解决办法: 一般直接点一般直接点一般直接点一般直接点““““允许允许允许允许””””就可以了就可以了就可以了就可以了 3.3.3.3.这个资源是什么?这个资源是什么?这个资源是什么?这个资源是什么? 这是传智播客这是传智播客这是传智播客这是传智播客.NET.NET.NET.NET 2010201020102010年培训班现场教学所用的课件,是货真价实的现年培训班现场教学所用的课件,是货真价实的现年培训班现场教学所用的课件,是货真价实的现年培训班现场教学所用的课件,是货真价实的现 场授课内容。场授课内容。场授课内容。场授课内容。 4.4.4.4.我如何下载传智播客我如何下载传智播客我如何下载传智播客我如何下载传智播客.NET.NET.NET.NET教学视频教学视频教学视频教学视频???? 目前您可以通过目前您可以通过目前您可以通过目前您可以通过3333种方式,都是完全免费的种方式,都是完全免费的种方式,都是完全免费的种方式,都是完全免费的!!!!(小提示:为什么本书中超链接打不开?)小提示:为什么本书中超链接打不开?)小提示:为什么本书中超链接打不开?)小提示:为什么本书中超链接打不开?) 电骡(电骡(电骡(电骡(verycdverycdverycdverycd))))::::http://www.verycd.com/topics/2857178/ (推荐) 传智播客传智播客传智播客传智播客.net.net.net.net官方网站下载:官方网站下载:官方网站下载:官方网站下载:http://net.itcast.cn/ViewArticle-103.aspx 如鹏网如鹏网如鹏网如鹏网.net.net.net.net 教学专区:教学专区:教学专区:教学专区:http://www.rupeng.com/forum/forum-54-1.html 5.5.5.5.我想了解一下我想了解一下我想了解一下我想了解一下.net.net.net.net精品就业班的情况?如何预约报名?精品就业班的情况?如何预约报名?精品就业班的情况?如何预约报名?精品就业班的情况?如何预约报名? 请您访问请您访问请您访问请您访问传智播客传智播客传智播客传智播客.NET.NET.NET.NET官方网站(官方网站(官方网站(官方网站(http://net.itcast.cnhttp://net.itcast.cnhttp://net.itcast.cnhttp://net.itcast.cn)))) 找首页的客服了解具体报名情况找首页的客服了解具体报名情况找首页的客服了解具体报名情况找首页的客服了解具体报名情况。。。。(小提示:为什么本书中超链接打不开?)小提示:为什么本书中超链接打不开?)小提示:为什么本书中超链接打不开?)小提示:为什么本书中超链接打不开?) 6.6.6.6.传智播客传智播客传智播客传智播客.Net.Net.Net.Net精品就业班讲师介绍精品就业班讲师介绍精品就业班讲师介绍精品就业班讲师介绍 杨中科杨中科杨中科杨中科,,,,专注于企业级系统开发专注于企业级系统开发专注于企业级系统开发专注于企业级系统开发,,,,撰写了撰写了撰写了撰写了《《《《自己动手写开发工具自己动手写开发工具自己动手写开发工具自己动手写开发工具》》》》、、、、《《《《程序员程序员程序员程序员 的的的的SQLSQLSQLSQL学习笔记》等技术图书。学习笔记》等技术图书。学习笔记》等技术图书。学习笔记》等技术图书。CSDNCSDNCSDNCSDN学生大本营学生大本营学生大本营学生大本营2009200920092009年度十佳老师。年度十佳老师。年度十佳老师。年度十佳老师。 曾任职于微软中国曾任职于微软中国曾任职于微软中国曾任职于微软中国、、、、金蝶软件等知名金蝶软件等知名金蝶软件等知名金蝶软件等知名 ITITITIT企业企业企业企业,,,,主导了金蝶主导了金蝶主导了金蝶主导了金蝶EASEASEASEAS湖南烟草湖南烟草湖南烟草湖南烟草局局局局 SCMSCMSCMSCM系统系统系统系统、、、、字符终端图形库字符终端图形库字符终端图形库字符终端图形库AHA3AHA3AHA3AHA3及开发工具及开发工具及开发工具及开发工具AHAIDEAHAIDEAHAIDEAHAIDE、、、、上海浦东发展银上海浦东发展银上海浦东发展银上海浦东发展银 行图形前端等项目的开发行图形前端等项目的开发行图形前端等项目的开发行图形前端等项目的开发,,,,并且在中国工商银行批量平台并且在中国工商银行批量平台并且在中国工商银行批量平台并且在中国工商银行批量平台、、、、集中监控运维系集中监控运维系集中监控运维系集中监控运维系 统统统统((((部署于中国工商银行部署于中国工商银行部署于中国工商银行部署于中国工商银行、、、、中国农业银行中国农业银行中国农业银行中国农业银行、、、、交通银行交通银行交通银行交通银行、、、、北京银行北京银行北京银行北京银行、、、、深圳发展深圳发展深圳发展深圳发展 银行等大中型银行银行等大中型银行银行等大中型银行银行等大中型银行))))、力诺集团呼叫中心、新广源集团呼叫中心、大连地区、力诺集团呼叫中心、新广源集团呼叫中心、大连地区、力诺集团呼叫中心、新广源集团呼叫中心、大连地区、力诺集团呼叫中心、新广源集团呼叫中心、大连地区 环境发展预测等项目中担任主力开发人员。环境发展预测等项目中担任主力开发人员。环境发展预测等项目中担任主力开发人员。环境发展预测等项目中担任主力开发人员。 杨中科发起的如鹏网(杨中科发起的如鹏网(杨中科发起的如鹏网(杨中科发起的如鹏网( http://www.rupeng.comhttp://www.rupeng.comhttp://www.rupeng.comhttp://www.rupeng.com)是专门为计算机初学者提供学习指导的网站)是专门为计算机初学者提供学习指导的网站)是专门为计算机初学者提供学习指导的网站)是专门为计算机初学者提供学习指导的网站,,,, 运营两年多来运营两年多来运营两年多来运营两年多来,,,,撰写的大量的学习方法的文章和撰写的大量的学习方法的文章和撰写的大量的学习方法的文章和撰写的大量的学习方法的文章和《《《《CCCC语言也能干大事语言也能干大事语言也能干大事语言也能干大事》》》》等视等视等视等视 频教程帮助无数的计算机初学者走出迷茫走入正确、快速发展的通道。频教程帮助无数的计算机初学者走出迷茫走入正确、快速发展的通道。频教程帮助无数的计算机初学者走出迷茫走入正确、快速发展的通道。频教程帮助无数的计算机初学者走出迷茫走入正确、快速发展的通道。 7.7.7.7.如何利用本课件学习?如何利用本课件学习?如何利用本课件学习?如何利用本课件学习? 配合传智播客配合传智播客配合传智播客配合传智播客.NET.NET.NET.NET 视频教程学习(视频教程学习(视频教程学习(视频教程学习(http://www.verycd.com/topics/2857178/http://www.verycd.com/topics/2857178/http://www.verycd.com/topics/2857178/http://www.verycd.com/topics/2857178/)))),,,, 我们推荐您按如下顺序学习,效果更佳!我们推荐您按如下顺序学习,效果更佳!我们推荐您按如下顺序学习,效果更佳!我们推荐您按如下顺序学习,效果更佳! 第第第第1111季季季季C#C#C#C#编程基础编程基础编程基础编程基础 第第第第2222季季季季C#C#C#C#面向对象基础面向对象基础面向对象基础面向对象基础 第第第第3333季季季季WinFormWinFormWinFormWinForm基础基础基础基础 第第第第4444季季季季SQLSQLSQLSQL从入门到提高从入门到提高从入门到提高从入门到提高 第第第第5555季季季季ADO.NetADO.NetADO.NetADO.Net 第第第第6666季季季季HTMLHTMLHTMLHTML 第第第第7777季季季季 JavaScriptJavaScriptJavaScriptJavaScript 第第第第8888季季季季DomDomDomDom 第第第第9999季季季季 JQueryJQueryJQueryJQuery 第第第第10101010季季季季asp.netasp.netasp.netasp.net基础基础基础基础 第第第第11111111季季季季asp.netasp.netasp.netasp.net中级中级中级中级 第第第第12121212季季季季asp.netasp.netasp.netasp.net高级高级高级高级 第第第第13131313季季季季ajaxajaxajaxajax 传智播客会不断将现场教学中的教学内容以视频教程等方式整理发布出来传智播客会不断将现场教学中的教学内容以视频教程等方式整理发布出来传智播客会不断将现场教学中的教学内容以视频教程等方式整理发布出来传智播客会不断将现场教学中的教学内容以视频教程等方式整理发布出来,,,,包括项目课程包括项目课程包括项目课程包括项目课程、、、、其他其他其他其他.Ne.Ne.Ne.Netttt 高级技术等高级技术等高级技术等高级技术等,,,,了解最新视频教程及传智播客了解最新视频教程及传智播客了解最新视频教程及传智播客了解最新视频教程及传智播客.Net.Net.Net.Net 教学的全部课程内容请访问传智播客教学的全部课程内容请访问传智播客教学的全部课程内容请访问传智播客教学的全部课程内容请访问传智播客.Net.Net.Net.Net 培训网培训网培训网培训网站站站站 http://net.itcast.cnhttp://net.itcast.cnhttp://net.itcast.cnhttp://net.itcast.cn ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 北京传智播客教育 www.itcast.cn CCCC####编程基础编程基础编程基础编程基础 讲师:杨中科 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 .Net开发环境(*了解) .Net Framework C# VB.Net F# …… 开发工具:Visual Studio 点Net、Dot Net C Sharp IronPython 提供函数库、类库 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 北京传智播客教育 www.itcast.cn .Net简介(*了解) .Net Framework CLR 操作系统 应用程序应用程序 操作系统 平台无关:CLR、.Net Framework进行了隔离。 Windows、Linux(Mono)、 智能手机、Web、RIA。学 会.Net什么都能开发,知识 移植。 更安全、更省心:代 码托管、罕用指针、 垃圾回收。 语言无关:VB.Net、C#都 调用同样的类、同样的方 法,VB.Net写的类C#也可 以调用。模糊了语言的差 别 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 .Net 的版本(*了解) .Net 1.1 .Net 2.0 .Net3.x .Net4.x … … Visual Studio2003 Visual Studio2005 Visual Studio2008 Visual Studio2010 … … 向 下 兼 容 大 同 小 异 Express(免费版) 快捷版 Standard 标准版 Professional 专业版 Team Suite 团队版 常用的功能没啥差别,微软的定价策略 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 第一个C#程序 创建第一个控制台程序并且调试运行。 为什么要从控制台程序开始?不要把精力放到表现 层,而是把精力放到写代码上。无论控制台还是 Winform还是ASP.Net最难的是写代码,而不是拖控 件。 唯一需要学的三条控制台指令:Console.WriteLine :打印输出、Console.ReadLine:从控制台读入一 行、Console.ReadKey:控制台暂停。至于 Console.是什么意思不用管。1+1=2的例子 占位符是个什么玩意儿?{0}的个数必须和参数的个 数一样,是一一对应的关系。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 VS开发环境介绍 解决方案管理器:解决方案、工程、文件 C#源文件一般以cs结尾 C#程序的入口是Main函数,在Main中写代码 就行,暂时不用关心其他部分是什么意思 错误列表。见到编译错误不用慌。错误排除演 示。常见错误:结尾没有分号,大小写错误。 显示代码行号。工具选项文本编辑器 C#显示行号 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 C#语法 从上到下一条条的依次执行。 大小写敏感 函数参数用()包围 两句代码之间用分号(;)分割(易错: 全角问题) 注释:单行注释、多行注释。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 变量 把变量看成放数据的容器。 定义变量的方式:类型 变量名; int i3; 变量的类型:不同类型的容器放不同的东西,铁罐不能放 硫酸。不能在int类型的变量中放字符串。 变量不能放和变量类型不兼容的数据。 变量的名字不能重名(不严格) 问题 • int i=10;Console.WriteLine("i"); ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 常用基本数据类型 string、int 、char 、bool 、decimal (了解) 、byte(了解)、double(了解)、 long(了解)、float(了解)等。 bool的取值:true、false。 为什么输出"要用转义符"\"",因为编译器默认是遇到"开始字符串,再遇到"是结束字符 串,但是如果遇到前面有\的"就不把它当成有字符串起始意义的"。 string:"\"ab\""、"ab\nb"、"c:\\a.txt"、@"c:\a.txt"(推荐)。@表示字符串中的\不当 成转义符 @不是万能的,不能解决字符串中有双引号的问题,如果有双引号还是用转义符 ‘a’是char,"a"是string string s = Console.ReadLine(); 问题: • String str=Console.ReadLine(); • Console.WriteLine(str); • 用户输入a\nb,输出什么?转义符只针对在代码中直接写出的字符串,对于程序 中读取出来没有这个问题。 简单的类型转换:Convert.ToString()、ToString()、Convert.ToInt32() 。 输入一个数,打印这个数的平方。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 补充 问题:int i=Convert.ToInt32(Console.ReadLine()) string s1 = Console.ReadLine(); int i = Convert.ToInt32(s1); @可以表示多行字符串。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 变量的命名 命名规则:第一个字符必须是字母或者下划线(_),其后的字 符可以是任意个数字、字母、下划线。不能全部使用C#的关键 字,比如class、namespace、new、void等。判断方式:VS中 亮蓝色的就是关键字。 这也是类、函数等的命名规则。 中文变量名(类名、函数名)。 C#中建议变量的开头用小写。 下列哪个是正确的变量名?_a、a、a1、a_a、1_a、a1、1a、 a3_、a$b、int、int1、a b、A1、INT。 变量的声明:int i;int x,y;int i=3; ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 运算符、表达式 +、-、*(乘)、/(除)、%(求余) +可以用作字符串连接,其他不可以。将string 和其他类型+,会自动tostring(); 易错:string s1 = "hello"+yang; ++(自增)、--(自减) (*)运算符优先级:i1+i2*i3、(i1+i2)*i3。不要 变态,括号是王道。内层的()先计算。 变量可以和字面量混合运算。 案例:让用户输入两个数,打印出两个数的和。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 赋值 赋值运算符=,让左边变量的值等于右边的计算结果。这就能解 释令人不解的i=i+1; (*)+=、-=、*=、/=。 i2=i1++;i2=++i1;(了解)。--同理。 习题:int a=10;a++;a=a+a;Console.WriteLine("{0}",a);执行结果 是什么? 易错:int i=10;int j=i;i=5;j=?。 int x=10;x+y=80;Console.WriteLine(y); x + y = 80; //左 边的必须是变量!!!不能是常量,不能 是表达式 习题:交换两个变量的值 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 布尔运算 相等判断:==,不要和=混淆。 WriteLine("{0}",i==1);WriteLine("{0}",i=1);的区别。 Console.WriteLine("{0}",i=1);//C#中赋值表达式也有值,它的 值表示为赋值后变量的值 不等判断:!= 大小比较:<、>、<=、>= 取反:! 组合运算:&&(并且)、||(或者)。 • && 并且:只有两边都为true的时候,表达式的值才为true,否则是 false; • ||或者:两边只要有一个为true的时候,表达式的值就是true,否则 是false; ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 if if(i>1) { } if(i>1) { } else { } if(i>100) { } else if(i<10) { } else { } 单句的时候大括号可以省略,但是不建议省 略,演示说明why if语句的嵌套 if(i>100||i<10) { } if(i>100&&j>10) { } if((i>0&&j>0)||(i<0&&j<0)) { } 易错代码: if(i>10); { Console.WriteLine("是"); } ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 课上练习 学编程不是看书,不是听老师讲,而是自己动手写。 作业1:提示用户输入密码,如果密码是“888888”则提示正确,否则提示错误。 作业2:提示用户输入密码,如果密码是“888888”则提示正确,否则要求再输入 一次,如果密码是“888888”则提示正确,否则提示错误。 作业3:提示用户输入用户名,然后再提示输入密码,如果用户名是 “admin”并且 密码是“888888”,则提示正确,否则提示错误,如果用户名不是admin还提示用 户用户名不存在。 作业4:提示用户输入年龄,如果大于等于18,则告知用户可以查看,如果小于 10岁,则告知不允许查看,如果大于等于10岁,则提示用户是否继续查看(yes 、no),如果输入的是yes则提示用户可以查看,否则提示不可以查看。(测试 边界条件,-1,8888888888888888888888888,aaaa。微软如狼似虎的Tester) 作业5:依次提示用户输入两个整数(假设 i1、i2)。如果i1、i2都是正数,则将 i1的值递增一个数,然后打印i1+i2的值;如果i1、i2都是负数,则将i1的值递减 10个数,然后打印i1*i2的值;如果i1、i2中任一个为0,则提示数据有错误;否则 计算i1*i2的绝对值。 注意:变量命名要用有意义的变量名。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 switch case 类似于if...else...else if...else,但是是离散值的判断。 switch一般都可以用if重写,但是if不一定能用switch重写 不要忘了break。C#中的break不写是不行的,除了合并case的情况 switch(i) case 1: // break; case 2: // break; switch(i) case 1: // break; case 2: // break; default: break; case中的值必须 是常量,不能是 变量、表达式。 switch(i) case a: // break; switch(i) case 1: case 2: // break; 被判定的值进入满 足条件的分支执行 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 while循环 while(i<100) { //打印i i++; } 只要while后小括号中的表达式为 true,就不断执行 大括号中的代码 while(不是终点) { 跑 } do { //打印i i++; } while(i<100) 先做……如果满足则再来一次,直至while表 达式为false。至少被执行一次。(*) 练习1:用while计算1到100之间整数的和;(有更好的数学解法) 练习2:要求用户输入用户名和密码,只要不是admin、888888就一直提示要求重新输入。 练习3:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退 出(return)。 练习4:不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候 显示刚才输入的数字中的最大值。设一个变量int max,初始值为0,用户每输入一次就把用 户输入的和max比较一下,如果输入的比max大,则让max等于用户输入。 易错:(1)string s = Console.ReadLine(),读取s的时候并不会再次要求输入;(2) while(Console.ReadLine()!="q") ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 循环的中断 break:立即终止整个循环。 continue:立即终止当前循环步骤,进行下一次循环步骤。 练习1:用 while continue实现计算1到100之间的除了能被7整除 之外所有整数的和。 练习2:用while break实现要求用户输入用户名和密码,只要不 是admin、888888就一直提示要求重新输入。 练习3:编写聊天机器人,如果问“今天天气怎么样?”则回答天气 ,如果问……,如果说“88”,则“再见”。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 for循环 for(code1;code2;code3)。code1:循环的初始化代码,只在循环开始之前运行一 次;code2,bool类型的表达式,每次循环完前都判断一下是否为true,只有为 true才会进行本次循环;code3在每次循环之后执行一次。各段之间用回车换行 ,设置断点查看执行过程。 for的三段都可以省略,但是不能丢了“;”。 break、continue同样可以应用于for。 for和while代码之间都可以互相转换,究竟用哪种方式则取决于一些惯用用法和 个人习惯,不用记,代码写多了自然就有感觉 for(int i=0;i<10;i++) { } for(int i=100;i>0;i--) { } 如果是遍历数组,遍历1..100推荐直接在第一段中声明变量。 for中终止条件注意是<还是<= 用 for实现计算1到100之间所有整数的和。用 for实现计算200到300之 间所有整数的和。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 类型转换Cast(*) 把源类型赋值给目标类型,两个类型不一致的时候会发生类型转换。a=b,b是源 ,a是目标 隐式转换、显式转换。当目标类型一定能满足源类型转换过去后的要求的话就是 隐式转换;如果当目标类型不一定能满足源类型转换过去后的要求的话就需要显 式转换(程序员自己负责)。 把中国人转换为人是隐式转换,把人转换为中国人则是显式转换(强制转换) 内存中的数据没有变化,只是不同的视角而已。 int、byte的表示范围:int.MaxValue、int.MinValue。 byte b=1;int i=1;i = b;b = (byte)i; 为什么要显式转换?编译器不能保证一定正确,转换结果自己负责。要人、给一 个中国人当前没问题,但是要中国人、给一个人则可能有问题,编译器不承担这 个责任,由开发人员来保证。 只有在内存存储上存在交集的类型之间才能进行Cast,否则则不可以,比如不可 以int i;string s=(string)i;反之也不可以。这种情况必须用Convert类提供的方法。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 类型转换Convert Convert不再是内存级别的转换,而是考 虑数据意义的转换。可以把姓名Convert 成人。Convert是一个加工、改造的过程 Convert.ToInt32、Convert.ToString、 每种类型都还有ToString方法(类型的 ToString和Convert.ToString略微的差别 暂时不用关心) ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 枚举 确定数量、确定值的几个取值:东西南北、男女、上中下。 enum Gender{male,female} enum QQStatus{online,offline,hidden} 为什么有枚举,如果用string来表示四季: • //1、需要在每个地方都进行数据合法性的校验 • //2、给函数传递参数的时候,只有看文档才只能哪些值合法 枚举的用法,QQStatus status = QQStatus.online; 和用字符串比起来,用枚举的好处就是限定了变量的取值范围,程 序处理起来更方便。 为什么不能:QQStatus status = online; ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 数组 保存多个值。任意类型都可以声明数组。 int[] nums = {5,3,8} int[] nums = new int[3] int[] nums = new int[3]{5,3,8}//个数和声明个数必须一致 int[] nums = new int[5]{5,3,8}//错误 使用索引器访问指定编号位置的元素,访问数组元素:nums[0]、nums[1]。索引从0开始。取到的元 素的类型就是数组元素的类型。还可以对数组元素进行赋值 数组的长度一旦声明就无法改变 练习1:从一个整数数组中取出最大的整数 练习3:将一个字符串数组输出为|分割的形式,比如“小月月|大月月|老月月” 练习4:将两个int类型数组连接为一个string类型数组。 练习2:计算一个整数数组的所有元素的和。 练习5:有一个整数数组,请声明一个字符串数组,将整数数组中的每一个元素的值转 换为字符串保存到字符串数组中。string[] strs = new string[values.Length]; 练习6:将一个字符串数组的元素的顺序进行反转。{"3","a","8","haha"} {"haha","8","a","3"}。第i个和第length-i-1个进行交换。 练习7:将一个int数组向左滚动平移1次。{3,5,8,7}{5,8,7,3} ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 数组2 foreach循环 string[] names= {"tom","jerry","lily"}; foreach(string name in names) { Console.WriteLine("我的名字{0}",name); } 和for的区别:for可以不逐个遍历,比如每隔一个遍历一个,或者可 以从后向前遍历 只能(只应该)在foreach对集合进行读,而不应该写。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 函数 函数就是将一堆代码进行重用的一种机制。函数就是一段代码, 这段代码可能有输入的值(参数),可能会返回值。一个函数就 像一个专门做这件事的人,我们调用它来做一些事情,它可能需 要我们提供一些数据给它,它执行完成后可能会有一些执行结果 给我们。要求的数据就叫参数,返回的执行结果就是返回值。 Console.ReadLine就是一个有返回结果的函数; Console.WriteLine("hello")就是一个有执行参数的函数,只有告 诉WriteLine被打印的数据它才知道如何打印;int i= Convert.ToInt32("22")则是一个既有参数又有返回值的函数。 有了函数写代码就像拼积木,C#中的各种各样的技术其实就是 通过for、if等这些基础的语法将不同的函数按照一定的逻辑组织 起来。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 自己写函数 1 读取输入的整数,定义成函数,多次调用 static int ReadInt() { String s = Console.ReadLine(); return Convert.ToInt32(s); } 写程序测试,程序调用到函数的时候是进入函数内部执行的,执行完毕再继续向下执行。 2、函数如果没有返回值则标记返回值类型为void 3、return语句 导致函数立即返回。在返回值为void的函数中return,在返回值非void的函数中"return 数值"。 return不是结束程序,只是结束当前函数,控制台程序中Environment.Exit(0)退出程序。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 函数返回值易错点 一个函数如果“答应”返回一个非void类型的值 ,则函数的所有路径都要有返回值。比如 将对输入年龄转换为年龄段描述的函数。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 函数参数 计算两个整数中的最大值:int Max(int i1,int i2) 计算输入数组的和:int Sum(int[] values) 确定函数参数的原则:自己能确定的数据自己内部解决,自己确 定不了的数据通过参数传递。 练习:string[] strs={"aa","333","ccc"}; 返回给我一个字符串,然后字符串使用我指定的分隔符来进行分 割,比如我指定用"|"分割,那么返回给我"aa|333|ccc"。 string Join(string[] strs,string seperator) 问题:函数名开头大写,参数名开头小写,参数名、变量名要有 意义 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 可变参数 参数数组:int sum(params int[] values) int sum(string name,params int[] values) 可变参数数组必须是最后一个 参数默认值(.Net4.0) :void SayHello(string name,int age=20)(*了解) ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 函数重载(函数重名) 函数的重名:错误 static void SayHello(string name) { Console.WriteLine("我是{0}",name); } static void SayHello(string name) { Console.WriteLine("I am{0}",name); } static void SayHello(string name) { Console.WriteLine("我是{0}",name); } static void SayHello(int age) { Console.WriteLine("我的年龄{0}",age); } static void SayHello(string name) 错误 { Console.WriteLine("我是{0}",name); } static int SayHello(string name) { return 10; } static void SayHello(string name) { Console.WriteLine("我是{0}",name); } static void SayHello(string name,string nickname) { Console.WriteLine("我是{0},昵称是 {1}",name,nickname); } 构成重载的条件:参数类型不同或者参数个数不同(不严谨 的),与返回值无关。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 字符串的处理 C#中单个字符用单引号包含就是char类型,('a'),单引号中放 且只能放一个字符。 单个字符也可以表示为字符串,还可以有长度为0的字符串 使用s.Length属性来获得字符串中的字符个数 string可以看做是char的只读数组。char c = s[1];。例子:遍历输 出string中的每个元素。 C#中字符串有一个重要的特性:不可变性,字符串一旦声明就 不再可以改变。所以只能通过索引来读取指定位置的char,不能 对指定位置的char进行修改。 如果要对char进行修改,那么就必须创建一个新的字符串,用s. ToCharArray()方法得到字符串的char数组,对数组进行修改后 ,调用new string(char[])这个构造函数(暂时不用细研究)来创 建char数组的字符串。一旦字符串被创建,那么char数组的修改 也不会造成字符串的变化。例子:将字符串中的A替换为a。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 常见疑问 谁说字符串不可变?string s = "abc";s="123",s这不是变了吗 要区分变量名和变量指向的值的区别。程序中可以有很多字符串,然后 由字符串变量指向他们,变量可以指向其他的字符串,但是字符串本身 没有变化。字符串不可变性指的是内存中的字符串不可变,而不是变量 不变。 string s10 = s1;//s10指向s1指向的字符串,而不是s10指向s1,哪怕s1 以后指向了其他内存,那么s10还是指向"hello" abc admin 888888 s1 s1 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 String类常用函数 ToLower():得到字符串的小写形式。 注意字符串是不可变的,所以这些函数都不会直接改变字 符串的内容,而是把修改后的字符串的值通过函数返回值 的形式返回。s.ToLower()与s=s.ToLower() ToUpper():得到字符串的大写形式; Trim()去掉字符串两 端的空白。 s1.Equals(s2, StringComparison.OrdinalIgnoreCase),两 个字符串进行比区分大小写的比较。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 字符串的分割 string[] Split(params char[] separator):将字符串按照指定的分割符分 割为字符串数组; string[] Split(char[] separator, StringSplitOptions options)将字符串按照 指定的char分割符分割为字符串数组( options 取 RemoveEmptyEntries的时候移除结果中的空白字符串); string[] Split(string[] separator, StringSplitOptions options)将字符串按 照指定的string分割符分割为字符串数组。 例子1:从日期字符串("2008-08-08")中分析出年、月、日;2008年 08月08日。 例子2:从一个记录了学生成绩的文本文档,每个学生成绩是一行,每 行是用|分割的数据,用|分割的域分别是姓名、年龄、成绩,写程序取 出成绩最高学生的姓名和成绩。参考:使用string[] lines = System.IO.File.ReadAllLines(@"c:\root.ini" , Encoding.Default);从文本 文件读取数据,返回值为string数组,每个元素是一行。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 字符串函数详解 字符串替换:string Replace(string oldValue, string newValue) 将字符串中的出现oldValue的地方替换为newValue。例子:名 字替换。 取子字符串:string Substring(int startIndex),取从位置 startIndex开始一直到最后的子字符串; string Substring(int startIndex, int length),取从位置startIndex 开始长度为length的子字符串,如果子字符串的长度不足length 则报错。 bool Contains(string value)判断字符串中是否含有子串value bool StartsWith(string value)判断字符串是否以子串value开始; bool EndsWith (string value)判断字符串是否以子串value结束; int IndexOf(string value):取子串value第一次出现的位置。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 字符串的处理练习 课上练习1:接收用户输入的字符串,将其中的字符以与输入相反的顺 序输出。"abc""cba" 课上练习2:接收用户输入的一句英文,将其中的单词以反序输出。 "hello c sharp""sharp c hello" 课上练习3:从Email中提取出用户名和域名:abc@163.com。IndexOf 找到@的位置。SubString。 课上练习4:文本文件中存储了多个文章标题、作者,标题和作者之间 用若干空格(数量不定)隔开,每行一个,标题有的长有的短,输出到 控制台的时候最多标题长度20,如果超过20,则截取长度17的子串并且 最后添加“...”,加一个竖线后输出作者的名字。 练习5:自己动手写聊天机器人,能够回答不同城市的天气、回答感情 问题、问的次数过多还会饿死,提问可以模糊提问(包含指定关键词) 。问“天气:北京”就回复“北京的天气是晴”。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 函数的ref、out参数(*) 函数参数默认是值传递的,也就是“复制一份”,例子: int age=20; IncAge(age); Console.WriteLine("age={0}",age); ref必须先初始化,因为是引用,所以必须先“有”,才能引用,而 out则是内部为外部赋值,所以不需要初始化,而且外部初始 化也没用。 ref应用场景内部对外部的值进行改变,out则是内部为外部变量 赋值,out一般用在函数有多个返回值的场所。 案例:两个变量的交换;int.TryParse。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 面向对象概念(*) 面向对象不是取代面向过程的。 类、对象。“人”是类,“张三”是“人”这个类的对象。类是抽象的,对 象是具体的。按钮就是类,某个按钮就是对象。对象可以叫做类的实 例(Instance)。类就像int,对象就像10。字段Field(和某个对象相 关的变量),字段就是类的状态。人这个类有姓名、年龄、身高等字 段。类不占内存,对象才占内存。 方法Method,方法就是类能够执行的动作,比如问好、吃饭等。 类的继承,类之间可以有继承关系,比如“电脑”类可以从“电器”类继 承,这样的好处是“电脑”类只需要定义自己特有的字段、方法就可 以,也就是只要定义内存大小、CPU型号这些字段或者弹出光驱等方 法就可以。父类(Parent)、基类(Base,基业,祖宗十八代传下来的)。 电脑类是电器类的子类(ChildClass)。重用。 面向对象的三个特性:封装、继承、多态。 没有面向对象的世界中的难题。 ————高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家高级软件人才实作培训专家 定义类 class Person{ } 定义方法(类的函数): class Person { public void SayH

该用户的其他资料

  • 名称/格式
  • 评分
  • 下载次数
  • 资料大小
  • 上传时间

用户评论

0/200
    暂无评论
上传我的资料

相关资料

资料评价:

/ 81
所需积分:2 立即下载
返回
顶部
举报
资料
关闭

温馨提示

感谢您对爱问共享资料的支持,精彩活动将尽快为您呈现,敬请期待!