C#基础入门传智播客).ppt
《C#基础入门传智播客).ppt》由会员分享,可在线阅读,更多相关《C#基础入门传智播客).ppt(201页珍藏版)》请在咨信网上搜索。
C C#编程基础编程基础讲师:苏讲师:苏 坤坤QQ:35651998http:/ Framework框架.一种平台,一种技术.nC#(sharp):一种编程语言,可以开发基于.net平台的应用.n(*)Java即是一种技术又是一种编程语言.net都能干什么n桌面应用程序 WinformnInternet应用程序 ASP.NETn手机开发 wp7nC/S:客户机(Client)/服务器模式(Server)qqnB/S:浏览器(Browser)/服务器模式(Server).Net开发学习路线(*)IDE介绍nIDE(Integrated Development,集成开发环境)nVisual Studio 2010 简介:n一套完整的开发工具集n用于开发桌面应用程序、ASP.NET Web 应用程序、XML、Web Service、移动应用程序n为快速开发提供强大支持IDE及.Net 的版本(*了解).Net 1.1.Net 2.0.Net3.x.Net4.xVisual Studio2003Visual Studio2005Visual Studio2008Visual Studio2010向下兼容.Net 1.0Visual Studio2002MSDN介绍MSDN 的全称是 Microsoft Developer Network。这是微软公司面向软件开发者的一种信息服务。MSDN 实际上是一个以 Visual Studio 和 Windows 平台为核心整合的开发虚拟社区,包括技术文档、在线电子教程、网络虚拟实验室、微软产品下载(几乎全部的操作系统、服务器程序、应用程序和开发程序的正式版和测试版,还包括各种驱动程序开发包和软件开发包)、Blog、BBS、MSDN WebCast、与 CMP 合作的 MSDN 杂志等等一系列服务。点击查看msdn百科Visual Studio介绍1n安装 setup.exe install.exe autorunn启动n创建解决方案/项目n认识vs的各部分(菜单/快捷键/工具栏/窗口)nVisualStudio各个视图的打开、开发环境的重置nC#源文件(类)一般以cs结尾nC#程序的入口是Main函数,在Main中写代码就行,暂时不用关心其他部分是什么意思Visual Studio介绍2保存项目,打开项目.交作业交哪些文件.作业的命名格式:苏坤512.rar先学习两句话:Console.WriteLine(Hello,World!);Console.ReadKey();每一句话以;号结束 生成程序运行一下生成的.exe程序设置字体及行号显示创建多个项目启动项目设置项目的加载与卸载c#中的注释符n注释方式:n/单行注释n/*/多行注释n/n/文档注释n/小练习n练习:编程输出以下内容 n自己练习一下三种注释符:n第一种:单行注释 以/开头,后面的就是注释内容n第二种:多行注释 以/*开头 */结束 之间的是注释内容n第三种:文档注释 在方法或类的上一行输入/就会产生计算机使用基本技巧n常用键介绍:Home/End/PageUp/PageDown/Shift/c+h/c+endn一段文字的删除.(del/backspace)nctrl+a ctrl+kf n学会使用复制粘贴。Ctrl+c/v/x 对话框中的使用n插入、覆盖模式的困惑。n学会使用Ctrl+Z撤销上一次操作n;,()等的的全角半角问题。出错:意外的字符nVS窗口的拖拽n遇到异常、报错不要慌。n目前经常用到的快捷键:F5 F6 n#region和#endregion软件系统依赖关系软件系统依赖关系(*)北京传智播客教育 .Net简介(*了解).Net Framework类库CLR公共语言运行时操作系统应用程序应用程序操作系统平台无关:CLR、.Net Framework进行了隔离。Windows、Linux(Mono)、智能手机、Web。学会.Net什么都能开发,知识移植。更安全、更省心:代码更安全、更省心:代码托管、罕用指针、垃圾托管、罕用指针、垃圾回收。回收。语言无关:语言无关:VB.Net、C#都都调用同样的类、同样的方法,调用同样的类、同样的方法,VB.Net写的类写的类C#也可以调也可以调用。模糊了语言的差别用。模糊了语言的差别.net是如何实现语言无关性的(*)C#VB.NET 代码被执行代码被执行 MSIL CLR通用语法,计算通用语法,计算机不用了解机不用了解CLR执行执行IL C#编译器编译器VB.NET编译器编译器.NET Framework.NET Framework.NET Framework 类库类库类库类库ASP.NETCLRCLR变量1n计算机使用内存来存储数据.n我们在计算机中存储数据和客人住旅馆很类似.我们住旅馆一般要做以下事情我们住旅馆一般要做以下事情我们住旅馆一般要做以下事情我们住旅馆一般要做以下事情:11、开房间(单人间、双人间、总统套间)、开房间(单人间、双人间、总统套间)、开房间(单人间、双人间、总统套间)、开房间(单人间、双人间、总统套间)22、入住、入住、入住、入住变量2n要在计算机中存一个数字1000,需要两句话.nint a;/开一个能放数字的空间na=1000;/把1000放进去.n声明变量的语法格式:n数据类型 变量名;n赋值:变量名=值;n可以 a=3.14;吗?变量3计算机中各式各样的数据3 3.14 100 the quick brown fox jumps over the lazy dog 张三张三 李四李四 True 2011-3-6char非数值非数值数值数值整型整型decimaldouble非整型非整型String 数据类型数据类型 int*更多的数据类型C#中的数据nint:3 5 100 -10ndouble:3.14 10.5 -3.14 -5.0nchar:A b a nstring:“Zhangsan”“李四”“计算机”“HelloWorld”andecimal:存储金钱 5.62ndecimal d=5.55m;ndecimal d1=5;变量的声明方法nA)数据类型 变量名称;nint age;n变量的赋值 age=18;nB)定义时赋值,数据类型 变量名称=值;nint age=18;nC)如果一次要声明多个相同类型的变量可用逗号分隔.nstring zsName,lsName;n变量一定要先声明,再赋值,才能使用.n练习:定义一个变量pi,并把3.14存进去,然后显示在屏幕上?n想一想下面代码的输出结果是?nint i=10;Console.WriteLine(i);变量的命名n命名规则:命名规则:n1 必须以必须以“字母字母”_或或符号开头符号开头.-不要以数字开头不要以数字开头n2 后面可以跟任意后面可以跟任意“字母字母”、数字、下划线、数字、下划线.n注意注意:n1)你起的变量名不要与)你起的变量名不要与c#系统中的关键字重复系统中的关键字重复.n2)在)在c#中中,大小写是敏感的大小写是敏感的.n3)同一个变量名不允许重复定义同一个变量名不允许重复定义(先这么认为先这么认为,不严谨不严谨)n定义变量时,变量名要有意义定义变量时,变量名要有意义 nC#C#变量命名编码规范变量命名编码规范Camel Camel 命名法:命名法:n首个单词的首字母小写,其余单词的首字母大写。首个单词的首字母小写,其余单词的首字母大写。nPascalPascal命名规范命名规范:每一个单词第一字母都大写每一个单词第一字母都大写n如果使用到英文单词的缩写,全部用大写!如果使用到英文单词的缩写,全部用大写!下面的变量名称哪些正确?principalcost_pricemarks_3$lastnamecity123ratediscount%zip codeCityint赋值运算符和赋值表达式n赋值运算符:=na=a+1;这里的=号是赋值运算符,不是数学义意上的相等.n变量可以重复赋值,一旦给一个变量赋了新值,那么变量中的老值就不复存在了.n右边代码的输出结果:演示:n定义一个变量存储客户的姓名,然后在屏幕上显示:”你好,某某”.n某某代表客户的姓名n+号可以连接两个字符串,这里的“+”号表示连接的意思练习:n1.定义3个变量,分别存储一个人的姓名(张三),年龄(28),和工资(7600.33).然后在屏幕上显示,我叫XX,今天X岁了,我的工资是XX元.n2.定义一个变量存储一个人的年龄(18),然后发现这个人的年龄不是18岁,要把这个人的年龄修改成20岁(本题体会变量可以被重复多次赋值),最后把这个人的年龄输出到屏幕上?变量练习n3.定义四个变量,分别存储一个人的姓名、性别、年龄、电话。然后打印在屏幕上(我叫X,我今年 X岁了,我是X生,我的电话是XX)n4.在屏幕上输出:我的手机是philips 型号:998 价格:1500元 重量:0.3kgn请定义变量存存储上面的值,并显示在屏幕上.n5.定义两个变量如:a b分别赋值为10和5,写程序交换两个变量的值字符串类型n再学习一句话:Console.ReadLine();用于接收用户的输入.要定义一个字符串变量来接收变存储用户输入的值.n1.练习:问用户喜欢吃什么水果,假如用户输入”苹果”,则显示”哈哈,这么巧呀,我也喜欢吃苹果”n2.练习:请用户输入姓名,然后在屏幕上显示“你好,XXX.XXX为用户刚刚输入的姓名.字符串中的转义n能在字符串中输出双引号吗?n在屏幕上显示:c#中的字符串用”号包含起来n+一个字符,组成转译字符.一般用于表示特殊符号n字在字符串前面表示不转译n常用的转译符:n b t ”算术运算符及算术表达式n算术运算符:+-*/%(取余数 取模)n算术表达式:由算术运算符连接起来的式子.如:1+1 a-b(变量ab前面已声明并赋初值)n演示:某学生三门课成绩为,语文:90 数学:80 英语:91,编程求总分和平均分.n优先级:先乘除先乘除,后加减后加减,有括号先算括号里的有括号先算括号里的,相同级相同级别的从左至右运算别的从左至右运算 5+3*2n小括号可以无限制的套用,但一定要成对出现.练习n练习1:定义两个数分别为10和20,打印出两个数的和。n练习2:计算半径为5的圆的面积并打印出来.n练习3:某商店T恤的价格为35元/件,裤子的价格为120元/条.小明在该店买了3件T恤和2条裤子,请计算并显示小明应该付多少钱?算术运算符-自动类型转换n下面代码的输出结果是什么?int a=10,b=3;int mod=a%b;double quo=a/b;Console.WriteLine(mod);Console.WriteLine(quo);类型自动转换规则参与运算(算术运算和赋值运算)的操作数和结果类型必须一致.当不一致时,满足下面条件时,系统自动完成类型转换 两种类型兼容例如:int 和 double 兼容目标类型大于源类型例如:double int 对于表达式如果一个操作数为double型,则整个表达式可提升为double型比如前面打8.8折的练习题.求10/3求余数要想得到3.333的处理.强制类型转换n如上题中打完8.8折后出现小数,商店为了结算方便,只收用户整数部分的钱,如本应收用户303.6,现在只收用户303元,应该如何做?n语法:n(数据类型名)待转换的值;n如:int b =(int)3.14;强制类型转换强制类型转换,数据类型一定要相兼容数据类型一定要相兼容 下面的写法对吗?下面的写法对吗?int number=(int)”3.14”;类型转型n问题:让用户输入他的语文和数学成绩,计算他的总成绩并显示出来?nConvert不再仅是内存级别的转换,而是考虑数据意义的转换。Convert是一个加工、改造的过程n通过 Convert.ToInt32(能转换成int类型的数据)来把其他类型数据转换成int类型n练习:n让用户输入姓名 语文 数学 英语 三门课的成绩,然后给用户显示:XX,你的总成绩为XX分,平均成绩为XX分。练习n练习,编程实现计算几天(如46天)是几周零几 天.n练习:编程实现107653秒是几天几小时几分钟几秒?n修改上面的题目,让用户输入.算术运算符和复合赋值运算符n+自加一 有前加和后加 n-自减一 有前减和后减n一元运算符+/-比二元的+-优先级高n+=n-=n*=n/=n%=练习:1 请说出上面程序执行完成后,var1中的值?上题中如果改成:Var1=+var2*var3-;Var1=?关系运算符(比较运算)n,=,老鼠的重量(1)兔子的寿命(3)乌龟的寿命(1000)39=90:A 90成绩成绩=80:B 80成绩成绩=70:C 70成绩成绩=60:D 成绩成绩=90:A 90成绩成绩=80:B 80成绩成绩=70:C 70成绩成绩=60:D 成绩成绩=90:A 90成绩成绩=80:B 80成绩成绩=70:C 70成绩成绩=60:D 成绩成绩60 :E循环结构n实际生活中的循环:打印100份试卷 10000米长跑 车轮n李四这次考试又粗心了,爸爸让他写1000遍下次考试一定要细心.n如何编程实现上面的问题?nConsole.WriteLine(下次考试一定要细心);nConsole.WriteLine(下次考试一定要细心);nConsole.WriteLine(下次考试一定要细心);n.使用循环解决聪明的解决方法:int i=0;while(i1000)Console.WriteLine(下次考试一定要细心);i+;whilen语法:while(循环条件)循环体;循环操作循环操作 循环条件循环条件 真真假假特点:先判断,再执行练习:n打印100次欢迎您来传智播客学习n输入班级人数,然后依次输入学员成绩,计算班级学员的平均成绩和总成绩n老师问学生,这道题你会做了吗?如果学生答会了(y),则可以放学.如果学生不会做(n),则老师再讲一遍,再问学生是否会做了.n直到学生会为止,才可以放学.n直到学生会或老师给他讲了10遍还不会,都要放学n2006年培养学员80000人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人?do-whilen明天小兰就要登台演出了,老师说再把明天的舞蹈表演一遍,如果满意,小兰就可以回家了.否则就需要再练习一遍,直到老师满意为止.nwhile or do-while?ndo-while为先执行,再判断do循环体;while(条件);练习:练习1:计算1到100之间整数的和;练习2:要求用户输入用户名和密码,只要不是admin、888888就一直提示用户名或密码错误,请重新输入。练习3:不断要求用户输入学生姓名,输入q结束.练习4:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出。练习5:不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数字中的最大值练习6:张三先唱一遍要表演的歌曲,老师觉得张三唱歌不过关,就让张三再唱一遍,老师满意则张三可以下课,不然则需要再唱一遍,再问老师是否满意.while与do-while区别n通过练习,希望大家已经掌握这两种循环.n语法不同n初始值不满足循环条件时:nwhile循环一次都不执行ndo-while循环会执行一次程序调试n设置断点n单步运行n观察变量forn连续输出100次我下次一定细心.n比较用for和while,哪种更好?n问题1:求1-100间的所有偶数和?n问题2:找出100-999间的水仙花数?n问题3:输出九九乘法表(循环的嵌套)语法:for(表达式1;表达式2;表达式3)循环体;练习:Breaknbreak用于循环中,退出当前循环.练习:n练习1:循环录入5个人的年龄并计算平均年龄,如果录入的数据出现负数或大于100的数,立即停止输入并报错.n练习2:在while中用break实现要求用户一直输入用户名和密码,只要不是admin、888888就一直提示要求重新输入,如果正确则提登录成功.n1100之间的整数相加,得到累加值大于20的当前数continue立即结果本次循环,判断循环条件,如果成立,则进入下一次循环,否则退出循环.举例:运动员跑步喝水的例子练习n练习1:用 while continue实现计算1到100(含)之间的除了能被7整除之外所有整数的和。小节n顺序结构:语句顺序执行 n分支结构:语句在满足条件下执行nif,if-else,if-else if,switch-case 表1?表2:表3(三元)n循环结构:语句在满足条件下循环执行多次nwhile,do-while,forn跳转语句nbreak,continue,goto枚举常量结构确定数量、确定值的几个取值:东西南北、男女、上中下。enum Gendermale,femaleenum QQStatusonline,offline,hidden枚举的用法,QQStatus status=QQStatus.online;和用字符串比起来,用枚举的好处就是限定了变量的取值范围,程序处理起来更方便。constconst 类型类型类型类型 常量名常量名常量名常量名 =常量值常量值常量值常量值 static void Main(string args)const int PI=3.14;PI=3.20;字符串与枚举的转换public enum Gender male,famale/Console.WriteLine(你的性别你的性别:0.,Gender.male.ToString();(Gender)(Enum.Parse(typeof(Gender),male);每一个值都对应一个数字典型的枚举类型:MessageBox.Show的参数(后面会学到)结构体n为什么要使用结构,例如c#中Color Point都是结构访问修饰符访问修饰符访问修饰符访问修饰符 structstruct 结构名结构名结构名结构名 定义结构成员定义结构成员定义结构成员定义结构成员public struct Person public string Name;public int Age;public string Hobby;public int Popularity;public void SayHi()/.练习:n1 定义一个结构叫MyColor,有三个成员,分别为red,green,bluen声明一个 MyColor类型的变量,并对其成员赋值.使MyColor可以表示成一个红色.n2 定义一个结构类型Person,有三个成员,分别为姓名,性别,年龄n声明两个Person类型的变量,分别表示 张三 男 18岁/小兰 女 16岁数组n一次语文测试后,老师让班长统计每一个学生的成绩并计算全班(全班共60人)的平均成绩,然后把所有成绩显示出来.n如何声明变量?n好的解决方法,使用数组.数组n保存多个值。几乎任意类型都可以声明数组。int nums=5,3,8int nums=new int3int nums=new int35,3,8/个数和声明数必须一致int nums=new int55,3,8/错误int nums=new int5,3,8/正确,可以省略数组个字使用索引器访问指定编号位置的元素,访问数组元素:nums0、nums1。索引从0开始。取到的元素的类型就是数组元素的类型。还可以对数组元素进行赋值数组的声明数组的赋值与取值常见问题:求平均值,求最大值,求和,排序练习:练习1:从一个整数数组中取出最大的整数练习2:计算一个整数数组的所有元素的和。练习3:将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世”练习4:将一个整数数组的每一个元素进行如下的处理:如果元素是正数则将这个位置的元素的值加1,如果元素是负数则将这个位置的元素的值减1,如果元素是0,则不变。练习5:将一个字符串数组的元素的顺序进行反转。“3”,“a”,“8”,“haha”“haha”,“8”,“a”,“3”。第i个和第length-i-1个进行交换。求平均值,求最大值,求和try-catch的使用(简单用法)try有可能出现错误的代码;catch如果try中的代码出现异常,则进去catch中方法方法的定义:访问修饰符 static 返回值类型 方法名()方法体;n命名规则:方法名开头大写,参数名开头小写,参数名、变量名要有意义n方法的调用,对于静态方法,如果在同一个类中,直接写名字调用就行了.nreturn可以立即退出方法.常用的已经学过的方法:nConsole.WriteLine();nConsole.Write();nConsole.ReadLine();nConsole.ReadKey();nint.Parse(string);nConvert.ToInt32(string);n对于由static修饰的方法,使用:类名.方法名()调用.n如果在类中调用自己的由static修饰的方法,可以省略类名.变量的作用域(只讲局部变量)阅读下面的程序,说一下输出结果是多少?变量的作用域n在方法中定义的变量称为局部变量,其作用域从定义开始,到其所在的大括号结束为止.n在一个方法中想要访问另一个方法中的变量,怎么办?n两种解决方法:参数和返回值n举例:写一个方法,判断一个年份是否是润年.方法中的return语句导致函数立即返回。在返回值为void的函数中return,在返回值非void的函数中return 值练习,自己写一个方法1 读取输入的整数,定义成方法,多次调用(如果用户输入的是数字,则返回,否则提示用户重新输入)2 还记得学循环时做的那道题吗?只允许用户输入y或n,请改成方法3查找两个整数中的最大值:int Max(int i1,int i2)4计算输入数组的和:int Sum(int values)思考:n即然Console.WiteLine()是方法,那么为什么WiteLine的参数可以是字符串类型,也可以是数字类型,还可以是布尔类型char类型呢?n为什么要有方法的重载?思考:n方法只能返回一个值,当需要返回多个值时怎么办?n例如:写一个方法,计算一个int类型数组中每个元素的总和 和 最大值与最小值?方法的out参数和ref参数(*)函数参数默认是值传递的,也就是“复制一份”,例子:int age=20;IncAge(age);Console.WriteLine(age=0,age);out则是内部为外部变量赋值,out一般用在函数需要有多个返回值的场所。例:int.TryParse。方法的练习:n重复让用户输入一个数,判断该数是否是质数,输入q结束?n质数的判断用方法来实现n将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世”(用方法来实现此功能)n用方法实现找出一个int类型数组中最大值和最小值n写一个方法,实现MyTryParse的功能面向对象概念n世界是由什么组成的:n化学家n画家n程序员n万物皆对象n试着描述杨老师和学生张三的特征和行为n属性对象具有的各种特征n每个对象的每个属性都拥有特定值n例如:杨老师和张三的年龄不一样.n属性:姓名,性别,年龄n属性的值:n方法:行为,动作.执行的操作.n方法:杨老师的行为,上课.n 学生的行为,学习练习:n说说教室里有哪些对象?这些对象有哪些属性和方法?n比如:电脑/灯/音箱等等n一切皆对象 找出下列对象共性n张三(一个学生)杨老师邻居售货员张阿姨李四的爸爸李四的妈妈n门口停的奔驰S320汽车/老师开的QQ汽车/杨老师的解放牌大货车n类:类是模子,确定对象将会拥有的特征(属性)和行为(方法)类是模子,确定对象将会拥有的特征(属性)和行为(方法)n类是对象的类型n人类 解俊峰;int a;类和对象的区别n类是抽象的概念,仅仅是模板,比如说:“人”类n对象是一个你能够看得到、摸得着的具体实体n人类都有:姓名性别年龄 属性,有说话的方法.n张三是一个对象,他的姓名属性的值:张三 性别的属性的值:男 年龄属性的值:20 张三会说话n对象可以叫做类的实例(Instance)n类不占内存,对象才占内存.类的定义n定的定义语法:访问修饰符 class 类名成员;.n类中可以包含变量的定义、方法。n请练习定义一个人类.人类分别用三个变量来表示姓名性别年龄,有一个打招呼的方法,有一个走路的方法.类的实例化n类的实例化,用关键字newn 语法:类 实例名=new 类();n类的成员的访问:实例名.属性 实例名.方法名();n字段、方法、属性(后面讲)都可以叫做类的成员Member,它们都需要定义访问级别。访问级别的用处在于控制成员在哪些地方可以被访问,这样达到面向对象中“封装”的目的。n访问修饰符:public private(internal protected)属性n字段用public修饰的问题.n属性的定义.get;set;n属性是为了保护与之相对应的字段的.保证对字段的读取和赋值符合要求.n属性可分为:读写、只读、只写。n允许外部访问的变量一定要声明为属性。类的练习:n定义一个学生类,有六个属性,分别为姓名、性别、年龄、语文、数学、英语成绩。n有2个方法:n一个打招呼的方法:介绍自己叫XX,今年几岁了。是男同学还是女同学。n两个计算自己总分数和平均分的方法。显示:我叫XX,这次考试总成绩为X分,平均成绩为X分n实化两个对象并测试:n张三 男 18 三科成绩为:90 95 80n小兰 女 16 三科成绩为:95 85 100类的构造方法n构造方法用来创建对象,并且可以在构造函数中对对象进行初始化。n构造函数是用来创建对象的特殊方法,方法名和类名一样,没有返回值,连void都不用。n构造函数可以有参数,new对象的时候传递函数参数即可n如果不指定构造函数,则类有一个默认的无参构造函数。如果指定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。n构造函数可以重载,也就是有多个参数不同的构造函数。n认识类图c#中的类图和通用类图-age:int-name:string+Name:string类名类名Student+SayHi():void练习1n给前面写的学生类添加构造方法.使在实例化学生类的时候可以通过构造方法对姓名性别年龄语数英等属性赋值,也可以只对姓名和性别赋值.年龄默认为18岁,语数英成绩默认为0分.练习2:n写一个Ticket类,有一个距离属性(本属性只读,在构造方法中赋值),不能为负数,有一个价格属性,价格属性只读,并且根据距离计算价格(1元/公里):n0-100公里 票价不打折n101-200公里 总额打9.5折n201-300公里 总额打9折n300公里以上 总额打8折有一个方法,可以显示这张票的信息.n测试上面的类.临时加(根据学生问题添加)n参数中使用out 和 ref的区别n数组做为参数nparam命名空间nnamespace(命名空间),用于解决类重名问题,可以看做“类的文件夹”。n如果代码和被使用的类在一个namespace则不需要using。n在不同命名空间下的类调用有两种方法:n写全称 命名空间.类名n先using引用命名空间,再调用字符串的处理nstring可以看做是char的只读数组。char c=s1;。例子:遍历输出string中的每个元素。nC#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。n如果要对char进行修改,那么就必须创建一个新的字符串,用s.ToCharArray()方法得到字符串的char数组,对数组进行修改后,调用new string(char)这个构造函数(暂时不用细研究)来创建char数组的字符串。一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。例子:将字符串中的A替换为a。字符串n练习一:随机输入你心中想到的一个名字,然后输出它的字符串长度 Length:可以得字符串的长度n练习二:两个学员输入各自最喜欢的课程名称,判断是否一致两个学员输入各自最喜欢的课程名称,判断是否一致,如果相等如果相等,则输出你们俩喜欢相同的课程则输出你们俩喜欢相同的课程.如果不相同如果不相同,则输则输出你们俩喜欢不相同的课程出你们俩喜欢不相同的课程.n上题中两位同学输入上题中两位同学输入 c#和和 C#代表同一门课代表同一门课,怎么办怎么办?n字符串的连接字符串的连接+,两边只要有一个是字符串类型两边只要有一个是字符串类型,另一个也会另一个也会被自动转换成字符串类型被自动转换成字符串类型n一切类型都可以调用一切类型都可以调用.ToString()方法转换成字符串类型方法转换成字符串类型.常见疑问n谁说字符串不可变?string s=abc;s=123,s这不是变了吗n要区分变量名和变量指向的值的区别。程序中可以有很多字符串,然后由字符串变量指向他们,变量可以指向其他的字符串,但是字符串本身没有变化。字符串不可变性指的是内存中的字符串不可变,而不是变量不变。nstring s10=s1;/s10指向s1指向的字符串,而不是s10指向s1,哪怕s1以后指向了其他内存,那么s10还是指向helloabcadmin888888s1s1String类常用方法nToLower():得到字符串的小写形式。n注意字符串是不可变的,所以这些函数都不会直接改变字符串的内容,而是把修改后的字符串的值通过函数返回值的形式返回。s.ToLower()与s=s.ToLower()nToUpper():得到字符串的大写形式;Trim()去掉字符串两端的空白。ns1.Equals(s2,StringComparison.OrdinalIgnoreCase),两个字符串进行比较不区分大小写的比较。ns1=s2字符串的分割nstring Split(params char separator):将字符串按照指定的分割符分割为字符串数组;nstring Split(char separator,StringSplitOptions options)将字符串按照指定的char分割符分割为字符串数组(options 取RemoveEmptyEntries的时候移除结果中的空白字符串);n练习:从日期字符串(2008-08-08)中分析出年、月、日;2008年08月08日。n让用户输入一个日期格式如:2008-01-02,你输出你输入的日期为2008年1月2日字符串函数详解n字符串替换:string Replace(string oldValue,string newValue)将字符串中的出现oldValue的地方替换为newValue。例子:名字替换。n取子字符串:string Substring(int startIndex),取从位置startIndex开始一直到最后的子字符串;nstring Substring(int startIndex,int length),取从位置startIndex开始长度为length的子字符串,如果子字符串的长度不足length则报错。nbool Contains(string value)判断字符串中是否含有子串valuenbool StartsWith(string value)判断字符串是否以子串value开始;nbool EndsWith(string value)判断字符串是否以子串value结束;nint IndexOf(string value):取子串value第一次出现的位置。nInt IndexOf(string value,int startIndex)字符串常用方法:n学习查看msdn字符串的处理练习n课上练习1:接收用户输入的字符串,将其中的字符以与输入相反的顺序输出。abccban课上练习2:接收用户输入的一句英文,将其中的单词以反序输出。hello c sharpsharp c hellon课上练习3:从Email中提取出用户名和域名:。n课上练习4:文本文件中存储了多个文章标题、作者,标题和作者之间用若干空格(数量不定)隔开,每行一个,标题有的长有的短,输出到控制台的时候最多标题长度10,如果超过10,则截取长度8的子串并且最后添加“.”,加一个竖线后输出作者的名字。n让用户输入一句话,找出所有e的位置对象的引用(非常重要)n举例:结构版的Person的赋值 与 类版的Person的赋值nint、decimal、bool、double byte 枚举结构等类型(值类型)是传递拷贝;对象(引用类型)则是传递引用。n方法间传递对象。.net中哪些是值类型?哪些是引用类型?数组:数组:int,string数组数组接口:接口:interface接口接口自定义类:自定义类:class字符串:字符串:string基类:基类:System.Object类类引用类型引用类型结构:结构:struct结构类型结构类型枚举:枚举:enum枚举类型枚举类型布尔型:布尔型:bool字符型:字符型:char浮点型:浮点型:float长整型:长整型:long整型:整型:int基本数据类型基本数据类型值类型值类型描述描述类别类别为什么要继承n分别写一个Teacher类和一个Student的类,分析他们应该有哪些属性和方法.n假如系统还要再加入班主任类、校长类、家长类.试分析这几个类的属性?n代码冗余,怎么解决?冗余的解决方案继承的符号:n利用继承实现Student类和Teacher类继承自Person类.nStudent类和Teacher类继承父类的属性和方法.nStudent类和Teacher类还有自己独有的属性和方法.继承的使用nclass Student:Person.;nclass Teacher:Person.;n子类继承了父类的成员,子类还可以有自己的成员.nPerson叫做父类(基类)Student和Teacher叫子类(派生类)nStudent继承了Person类nPerson类派生了Teacher类n在c#中,所有的类都直接或间接的继承自了object类.(当我们定义一个类的时候,如果没有写:继承一个类,那么这个类就继承了object类)练习:n写一个Student类和一个Teacher类,他们都有一个打招呼的方法,不同的是Studetn打招呼是说大家好,我叫XX,我今年XX岁了,我的爱好是XXX,Teacher的打招呼的方法是说大家好,我叫XX,我今年XX岁了,我已经工作XX年了?显示调用父类的构造方法n实例化子类时是否调用了父类的构造方法?顺序如何?n利用构造方法设置公共属性,也就是说若父类的构造方法有参数,应该如何处理呢?n显示调用父类的构造方法,关键字:baseprotectednprotected访问修饰符不允许其他非子类访问n修改刚刚的练习,父类中把访问修饰符改成protected子类中还能被调用到吗?其他非子类能调用吗?n继承的传递性.n继承的单根性.类型转换(lsp)nPerson p=new Teacher();n子类可以隐式的转换成父类.nTeacher t=(Teacher)p;nis和asntypeA is type B 仅判断ntypeA as TypeB 先判断,再转换练习:n自己定义一个父类Person,两个子类Teacher和Student类.Person写一个有参数的构造方法.n自己试试,子类可以自动转父类,父类转子类要通过强转.为了不出错,可以先通过is判断或用as转换.ArrayList和HashTablen为什么要用ArrayList和HashTablenArrayList元素的增加、插入、删除、清空、排序、反转。nHashTable的增、删、查、判存。nforeach异常与异常处理n传统的错误表示方式:错误码。举例。需要知道不同错误码的含义,如果不处理错误码,则程序可能陷入不可以预置的错误。陈摄影师以为文件已经被删除造成的麻烦。n错误码的缺点:不处理则很难发现,每次处理则很麻烦;难以看出错误的原因;容易使- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 基础 入门 传智播客
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文