已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程学习笔记第一天课程学习笔记(2012.10.10)1. 概念: .net和C#A、.net/dotnet: 一般指.Net Framework框架,一种平台,一种技术。B、 C#(sharp)是一种编程语言,可以开发基于.Net平台的应用。C、(*)JAVA既是一门技术又是一门编程语言。2. .Net都能做什么 在.Net 这个平台上开发的桌面应用程序叫 winform 应用程序开发。3. 解决方案中可以包含多个项目,项目可以包含多个文件,文件中是我们写的程序。4. 在文件中,命名空间可以包含类,类中可以包含方法,方法中可以是我们写的程序。5. 重置开发环境: 可以使我们的开发工具恢复默认状态。 工具-导入导出 一般的窗口不小心关闭了,再视图中找。6. Main方法是我们程序的入口方法。当我们执行一个程序时,会首先找到Main方法,从Main的第一句程序开始执行,当Main方法执行完成后(及执行到Main方法的反大括号),程序就结束了。 所以,现在我们初学者写程序,就先写在Main方法中。 一般情况下,一个程序只能有一个Main方法。7. .sln是解决方案文件。.csproj 是项目文件。8. 今天学习的第一句话:Console.WriteLine(“你想显示的内容”);第二句话:Console.ReadKey();当程序执行到Console.ReadKey();时,程序会停到这里,等待用户从键盘上键入一个键,用户键入这个键之后,程序才继续执行。9. 在C#中,每一句话都必须以分号结束(;).10. 设置vs中字体大小: 工具选项行号的显示:工具选项11. C#中的注释,什么是注释呢? 对我们写的程序进行解释,注释是给人看的。 有三种注释:1. 单行注释。 以 / 开始,到本行结束。2. 多行注释。 /*开始 */结束,之间的都为注释。3. 文档注释。用于对类和方法进行注释,在类或方法前面,连续输入3个/ 12. 下面的一对指令可以折叠一段代码。 #region 和#endregion13. .net是一种多语言平台,开发.net可以用多达几十种语言进行开发。 Java:是一种单语言的平台。一种语言多种平台。14. MSIL:微软中间语言。第二天课程1.内存:用户存储正在运行的程序数据(不准备)。RAM:内存的特点,断电后里面的数据丢失。2.变量:变量代表着一块内存空间,我们可以通过变量名称向内存存/取数据,有变量就不需要我们记忆复杂的内存地址。3. 向内侧申请一块内存空间的语法: 数据类型 变量名;C#中常用的数据类型:Int类型: 整数数据类型。Double类型: 小数Char类型: 字符型 只能存储一个字符,并且存储的这个字符要求用单引号引起来。String类型: 字符串。 就是把0个或者1个或多个字符连接起来,字符串要求用引号引起来。Decimal类型: 存储金钱。数字后面必须要加M/m. 注意:在C#开发环境中,直接写一个小数点的数字,这个数字是double类型的。在一个小数后面加一个M/m,就告诉编译器这是decimal类型的。4.变量声明的3种方法:1) 先声明,再赋值。 Int a; a=3;2) 定义变量时,直接赋值。 Int a = 3;3) 一次声明多个同类型的变量,多个变量名称之间要用逗号分割。最后以;结束这句话。 举例: string zsName,lsName,wwName; Int zsAge = 18,lsAge = 20,wwAge = 22;注意:变量一定要先声明,再赋值,最后使用(取值/调用/写这个变量)。5.变量的命名规则: 1)必须以“字母”_或符号开头(不能以数字开头)。 2)后面可以跟任意“字母”、数字、下划线。注意:A 你起的变量名不要与C#系统中的关键字重复。B 在C#中,大小写是敏感的。C 同一个变量名不允许重复定义(先这么认为,不严谨) 3)定义变量时,变量名要有意义。6. C#变量命名编码规范Camel 命名法: 首个单词的首字母小写,其余单词的首字母大写。 如:studentName zsAge name Pascal命名规范:每一个单词第一个字母都大写。如SoftwareName SystemVersion 如果使用到英文单词的缩写,全部用大写!在方法中定义变量,要使用Camel命名法。Main方法也是。7. 在一个方法中,一般情况下变量只能定义一次(先这么认为),但可以多次赋值,再次赋值时,会把变量中原有的值给覆盖掉。8.“+”在C#中有两种意义: 1)是数学中的加法运算:两边参与加法的运算的数据类型为数字类型,则“+”表示数学上的加法意义。 2)是连接两个字符串:两边参与加号运算的数据,有一个是字符类型,那个找个“+”号就是连接的意义。9.占位符: 在Console.Writline(“”)中,第一个变量/字符串中可以使用占位符。 占位符由数字组成,数字由0开始编号,如下: 第1个占位符:0第2个占位符:1第3个占位符:2 举例如下: Console.Writeline();有多个参数时,输出都是第一个参数中的内容,从第二个参数开始,都是用来替换第一个参数中的占位符的值,所以从第二个参数开始,要不要输出,就要看第一个参数中有没有相关的占位符。 注意,电话号码一般用 string 类型。10. 交换两个变量的值必须借助第三者:11.学习第三句话: Console.Readline(); 这句话用于让用户从键盘上输入一句话,当程序执行到Console.Readline();时,就会暂停,然后等待用户从键盘上输入,按回车程序将继续执行。 如果想要得到用户输入的内容,就需要定义一个string类型的变量,写在下面这句话前面,接收用户输入的内容。 接收用户输入的内容必须定义一个字符串来接收。String input=Console.ReadLine();12.字符串中的转义 当我们需要在字符串中输入一些特殊字符时,比如:半角引号,换行,退格时。 就需要使用转义字符。 转义字符是一个字符,他由一个+一个字母来组成具有特殊意义的一个字符。 常用的转义字符: n 换行 b backspace 退格 t tab键(由多个空格字符组成的一个字符,具有行与行对其的功能)。 输出 ” 输出” 在字符串前面加符号有两种意义:1) 字符串中如果有 ,则不再理解为转义符。2) 是字符串可以换行。 如果字符串中前面加了符号,在字符串上用两个双引号代表一个双引号。13.算术运算符及算术表达式。 1)算数运算符 :+ - * / %(取余数/取模),他们都是二元运算符。要求参与的两个操作数的类型必须相同,并且经过运算后的结果与操作数的类型相同。 2)在算术表达式中,如果要改变计算的优先级,用小括号。 小括号可以无限极的出现(必须成对出现)。14.算术运算符自动类型转换 15.类型自动转换(隐式转换)规则 参与运算(算术运算和赋值运算)的操作和结果类型必须一致。当不一致时,满足下面条件时,系统自动完成类型的转换。1) 参与运算的两个数据类型必须相兼容。 例如:int和double兼容。2)必须一边的数据类型表示范围小,一边的范围大,并且把小的转换成大的不丢失精度。2) 对于表达式,如果一个操作数为double类型,整个表达式可提升为double类型。在自动转换中,转换是不会丢失精度的。如果丢失精度,那个这个转换肯定不会自动完成。经常见到的就是,参与运算的两个操作数,一个是int,一个是double,那么int类型会自动转换成double类型。 如果一个操作数为double类型,则整个表达式的运算结果为double类型。16.强制类型转换。 当需要丢失精度的转换(如从 double 3.14转换到int 3的转换,会丢失0.14的精度)时,系统是不会帮我们自动转换的,需要我们程序员来写代码完成转换。 强制转换的语法为: (数据类型名)待转换的值; 注意:下面的两种转换是错误的,因为强制类型转换要求带转换的类型和目标类型必须是数字。 17.类型转换: Convert.ToInt32(); Int 变量名 = Convert.ToInt32(代转字符串); 上面的语句的意义:把待转字符串转换成int类型后赋给变量。 String strSecore = “90”; Int iScore = Convert.ToInt32(strSeore); 把 strScore 转换成 Int 类,并且赋给iScore。 18. try-catch的使用(简单用法) C#中异常捕获如何完成: try 有可能出现错误的代码写在这里Catch 出错后的处理。上面的程序如何执行: 如果try 中的代码没有出错,则程序正常运行 try 中的内容后,不会执行 catch 中的内容。 如果 try 中的代码一旦出错,程序立即跳入catch 中去执行代码。那么 try中的出错代码后面的代码不再执行了。19.自加自减复合赋值-关系表达式 a. + 自加一 有前加和后加 - 自减一 有前减和后减 Int age = 18; Int sum = age+ - 10; 上面age 是后加,所以在进行语句运算时,age+取age的原值参与运算,所以sum = 8; Int age = 18; Int sum = +age - 10; 上面代码age是前加,所以在进行语句运算时,+age取age加1后的值,所以sum = 9; 总之,不管是+age还是age+,经过运算后,age的值都进行了+1运算。 Int age = 18; Int sum = age+ - 10;相当于: Int age = 18; Int sum = age 10;age= age + 1;int age = 18;int sum = +age 10;相当于:int age = 18;age = age + 1;Int sum = age 10;在C#中,一般情况下,一元运算符的优先级大于二元运算符。 一元运算符为:+ ,- , 二元运算符 :+ - * / b. 复合运算符l += 例如:age = age + 3; age + = 3;l -=l *=l /=l %=能够改变变量中的值的: = +/-20.关系运算符(比较运算) 在C#中,有6个关系运算符,用于比较两个事物之间的关系。 大于 = 大于等于 = 小于等于 关系表达式:由关系运算符连接起来的式子。21.什么是bool类型(布尔)关系表达式的运算结果为bool类型,bool类型只有两个值,一个是true,一个是false。 如果关系运算表达式成立,则这个表达式的值为true,否则为false。22.逻辑运算符: & | ! 逻辑(与)&:逻辑与运算: 表达式1 & 表达式2 逻辑与连接的两个表达式,要能够求解成bool类型,一般情况都是关系表达式。整个逻辑与运算的结束也是bool类型。 表达式1表达式2逻辑与结果TrueTrueTrueTrueFalseFalseFalseTrueFalseFalseFalseFalse当两个表达式全为True,其结果为True。逻辑或(或者): 表达式1 | 表达式2 逻辑或连接的两个表达式,要求能够求解成bool类型,一般情况都是关系表达式,整个逻辑或运算结束也是bool类型:表达式1表达式2运算结果TureTureTureTureFalseTureFalseTureTureFalseFalseFalse 当两个表达式有一个为True,其结果为ture。 逻辑非:! 这是一个一元运算符。 用法: !(布尔类型的表达式) 作用: 取反。 即布尔表达式为ture,加!后,其整个式子为false。 反则一样。 23.if结构的基本语法: if(条件) 语句1; 执行过程:首先判断条件的结果,如果条件为ture,则这行语句1,如果条件为false,则跳过语句1。执行后面的语句。 注意:1)if后面的括号中的条件,要能计算成一个bool类型的值。 2)默认情况下,if语句只能带1句话,即和if语句有关系的语句只有语句1.if带多句话可以写成:if(条件) 语句1; 语句2; 。要求:我们在写程序的时,哪怕if语句只带一句话,也要写在大括号中。(16节)24. if-else结构:语法:if(条件) 语句1; else语句块2; 执行过程: 如果条件为ture,则执行if带的语句块1,并且跳过else带的语句2 如果条件为false,则跳过if带的语句块1,执行else带的语句块2 上面两个语句块,根据条件结束为ture或False,总要执行一个。25. if-else if在if-else if语句中,只有当上一个条件不成立时,才会进入下一个if语句并进行if语句后面的条件判断。一旦有一个if后面的条件为ture,则执行此if所带的语句(块),语句(块)执行完成后,程序跳出if-else if结构。 如果所有的if条件都不成立,则执行最后的else所带的语句,如果最后没有else语句,则什么都不执行。26.switch-case语法: switch(表达式/变量) case 值1:语句块1; break; case 值2:语句块2; break; default: 语句块3; break; 执行过程:首先计算表达式,然后根据计算的结果与匹配case后面的值,如果有匹配项,则执行匹配项后面的语句,直到break语句跳出 switch-case,如果所有的case值都不匹配,那么default则执行 default后面的语句,直到 break结束。如果没有default,则跳出switch-case,什么都不执行。27.if-else if与 switch的比较:l 相同点:都可以实现多分支结构l 不同点: switch:一般 只能用于等值比较 if-else if:可以处理范围第21节28.do-while语法:do 循环体;while(条件);执行过程:1. 执行循环体,执行完循环体转向22. 判断条件是否成立,如果条件为true,则转向1,如果条件为false,则转向3.3. 跳出循环,循环结束。 假如循环条件一开始就不成立,对于while循环,一次都不会执行。对于do-while循环体会执行一次。 所以,do-while的循环体一般至少会被执行一次。while先判断,后执行。do-while先执行,后判断。29. try-catch 检测异常: try /检测 有可能出现异常的代码 catch 出错后进入catch后执行的代码如果try中的代码没有异常,则不会执行catch中的代码。如果try中的代码有异常,则直接跳入catch中执行代码。第24节30.程序调试 1.设置断点。 2.单步运行。 3.观察变量。31. for循环: 语法: for(表达式1;表达式2;表达式3;) 循环体;for循环,一般用于已知循环次数的循环。一般情况,表达式1:用于定义循环变量和对循环变量赋初值。 表达式2:循环条件。 表达式3:用于改变循环变量的值。执行过程:第1步:计算表达式1,转向第二步。第2步:计算表达式2(循环条件),如果表达式2的值为true转向第3步,如果表达式2的值为false,转向5第步。第3步:执行循环体,转向第4步。第4步:执行表达式3,转向第2步。第5步:循环结束。32. 水仙花数: 设一个三位数为:abc 如果a*a*a+b*b*b+c*c*c=abc则找个数为水仙花数。33. break break用于循环中,退出当前循环。1) 可以用于switch-case判断中,用于跳出switch.2) 用在循环中,用于立即跳出(终止)循环。注意:用于循环中时,跳出break所在的循环。34. continue; 用于循环中,程序一旦执行到continue语句,立即结束本次循环(就是不再执行循环体中continue下面的语句),直接进行下一次循环。(do-while/while直接进入下一次循环条件的判断,如果条件成立,则再次进入循环)。 对于for循环,先执行表达式3,再判断循环条件是否成立。)35.小节: 三元表达式: 表1?表2:表3 执行过程:首先计算表达式1(表达式1应该是一个能够计算成bool类型的值),如果表1的值为true,则表达式2的值作为整个表达式的值,如果表1的值为false,则表达式3的值做为整个表达式的值。 表达式2和表达式3的类型一定要相同(相兼容)。 1.顺序结构:语句顺序执行。 2.分支结构:语句满足条件下执行if, if-else, if-else-if, switch-case; 表1?表2:表3(三元) 3.循环结构:语句在满足条件下循环执行多次 while , do-while, for 4.跳转语句 break, continue, goto35. 枚举常量结构 1.常量: 语法: const 类型 常量名 = 常量值;举例: const double PI = 3.14; 2.枚举: 让我们定义一种枚举类型,并且在定义这种类型时我们要指定找个类型的所有值。 语法: enum 自己起的类型名称 值1,值2,值3,。值n; 枚举的定义:一般和类定义在同一个级别。这样,在同一个命名空间下的所有的类就都可以使用找个枚举了(方法中/类中也可以)。 枚举的作用:1)限制用户不能随意赋值,只能在定义枚举时列举的值中选择。2)不需要死记每一个值是什么,只需要选择相应的值。注意:1.定义枚举时,值不能是int类型2.枚举定义的变量都可以强制转换成一个int类型。 3.枚举的值在定义时是有一个默认编号的,编号从0开始。 如果把一个字符串转换成枚举类型: (自枚)(Enum.Parse(typeof(自枚),”待转换的字符串”); 第29节 36.结构 为什么我们要用结构: 1)比如我们上课讲的为了存储一个人的信息,要声明一组变量。当我们要存储n个人的信息时,就要声明n组变量,麻烦。 2)存储一个人的信息的这几个变量之间没有关系,容易记乱。 语法: 访问修饰符 struct 结构名 定义结构成员例如:注意:定义好一个结构后,就可以直接声明相应的变量了。 声明好变量后,通过变量名.成员名 来访问结构的成员。举例:37.计算机基础知识: 计算机中最小的单位叫“位”,bit 比特 b 就把8个进制分成一组,那么8个进制位叫做 字节 Byte B 计算机能够处理的最小单位。 1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB 1Gb=128M38.数组 为什么使用数组:可以帮我们一次声明多个同类型的变量,这些变量在内存中是连续存储的。 语法: 数据类型 数组名=new 数据类型数组长度; 例如: intscore = new int5; 就声明了一个长度为5的数组,数组叫score. 通俗点说:就是声明了一个数组,里面包含5个int类型的变量。数组名叫:score 里面的5个int类型的变量叫做:数组的元素。 如何访问数组:通过下标(索引)来访问数组: 数组名编号比如,我们要向第0个元素赋一个3,可以写成: score0=3;int类型数组一旦声明,里面的每一个元素被初始化成0。通过 数组名.Length 可以获得数组的长度。39.数组中的变量位置交换 A+b=Length-1-a; 5个元素(2) 6个元素(3) 0-4 0-5 1-3 1-4 2-3 N个元素进行交换。 1)交换n/2次。 2)在一个循环中,第i个元素与第Length-1-i个元素进行交换。第32节40.冒泡排序: 让数组中的元素两两比较(第i个与第i+1个比较),经过n(i-1)遍两两比较,数组中的元素能按照我们预期的规律排序。 1.要从大到小排序,我们进行两两比较的时候用 ”): 20,30,40,50,60,70,10 第一趟 比较6次。 30,40,50,60,70,20,10 第二趟 比较5次。 40,50,60,70,30,20,10 第三趟 比较4次。 同理。 70,60,50,40,30,20,10 第六趟 比较1次。也就是说n个数需要排n-1趟。第t趟比较n-t次。i=0 第一趟i=1 第二趟趟数:i+1 t= i + 1for(int j = 0; j n i -1;j+)则为下面代码:for(int i = 0;i numbers.legth 1;i+) for(int j = 0;j ) 交换例子:41.方法(函数) 功能:用来复用代码的。 当我们在一个程序中反复的写了同样的代码,那一般情况下,我们可以把需要重复写的代码定义在一个方法中,用的时候只需要调用就行了。定义方法的语法:public访问修饰符static 返回值类型 方法名(参数) 方法体;注意:1)一般情况下,方法一般要定义在类中。 2)如果方法没有返回值,则返回值类型写 void。 3)如果方法没有参数,()不能省略。 Console.Clear();- 清屏方法的调用:如果是静态方法(由static修饰的)则使用 类名.方法名()在类中调用本类调用的方法,可以写成 方法名();return:立即退出本方法。42.变量的作用域在方法中定义的变量称为局部变量,其作用域从定义开始,到其所在的大括号结束为止。43.参数 当被调用者想得到调用者方法中的变量时,则可以让调用者以参数的形式给被调用者。 如: public static void Test(int number) /形参在方法名后面的括号内定义的变量,叫做定义这个方法的参数,这里定义的变量用于接收调用者传来的数据。注意:如果一个方法一旦有参数,那么调用者必须传参数,并且传参数的个数与对应位置类型必须相同。例子:44.返回值 当调用者想访问
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2031年中国矽橡胶玻纤套管行业投资前景及策略咨询研究报告
- 2025至2031年中国新康霜行业投资前景及策略咨询研究报告
- 2025年度版权质押合同(具体描述质押权利、质押期限等)2篇
- 2025年度委托企业员工培训项目设计与执行合同3篇
- 2025版知识产权担保协议书规范版3篇
- 在线教育服务保密协议
- 智能港口物流系统集成服务合同
- 2024年度消防安全评估与整改合同3篇
- 二零二五年度在线教育SaaS平台服务协议下载3篇
- 2025年度环保型商品混凝土供货居间服务协议3篇
- 血气分析结果判读及临床应用护理课件
- 智能船舶与海洋工程:物联网在船舶与海洋工程中的应用
- 高速服务区经营分析报告
- 浙江省湖州市2022-2023学年四年级上学期数学期末试卷(含答案)
- 现场工艺纪律检查表
- 建井施工方案
- YMO青少年数学思维28届五年级全国总决赛试卷
- 个人业绩相关信息采集表
- 过敏性紫癜课件PPT
- 大学生暑期社会实践证明模板(20篇)
- 自来水维修员年度工作总结
评论
0/150
提交评论