




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章:C#简介1.1 什么是.Net Framework特点:不限操作系统,不限应用程序类型,不限访问语言(通用类型系统,Common Style System , CST)。包含:代码库、.Net公共语言运行库(Common Language Runtime ,CLR)ß(负责管理用.Net 库开发的所有应用程序的运行)MISL和JIT编译过程:C#代码àMicrosoft中间语言(Microsoft Intermediate Language , MSIL)由VS完成à本机代码 由Just-In-Time 编译器即JIT完成程序集编译应用程序时,所创建的MS
2、IL代码存储在一个程序集中,程序集包括可执行应用程序文件(.exe)和其他应用程序使用的库(.dll)。除包含MSIL代码外还包含元信息(即程序集中包含的数据信息,也称为元数据)和可选的资源(MSIL使用的其他数据,例如声音文件和图片)。元信息允许程序集是完全自我描述的,不会出现无法将需要的数据添加到系统注册表中的情况。不必把运行应用程序所需要的所有信息都安装到一个地方。可以编写一些代码,执行多个应用程序所要求的任务。此时,通常把这些可重用的代码放在所有应用程序都访问的地方。在.Net Framework中,这个地方是全局程序集高速缓存(Global Assembly Cache ,GAC)。
3、方法是:将包含代码的程序集放在包含该高速缓存的目录下即可。托管代码用.Net Framework编写的代码在执行时是托管的,即CLR管理着运行程序,其方式是管理内存、处理安全性,以及允许进行跨语言调试等。在C#中,只能编写在托管环境下运行的代码,我们使用CLR的托管功能,让.Net自己与操作系统交互。垃圾回收提醒:需要许多内存才能运行的代码应自己执行这样的检查,而不是坐等垃圾回收。链接在编译为MSIL语言的C#代码不一定包含在单独的文件中,可以把应用程序代码放在多个源代码文件中,再把它们编译到一个程序集中,这个过程称为链接。好处在于处理几个较小的文件比处理一个大文件简单的多。1.2 什么是C#
4、强大的语言:在C#中与C+比较高级的功能等价的功能(例如直接访问和处理系统内存),只能在标记为“不安全”的代码中使用。类型安全的语言:在类型之间转换时,必须遵守严格的规则。第三章:变量和表达式(P22)3.1 C#的基本语法区分大小写代码的突出显示功能:#region Name #endregion3.2 变量3.2.1 简单类型(P26)String的字符数没有上限。占位符(格式字符串)的使用举例:Int myInteger = 17;String myString = “blarblar”;Console.WriteLine(“01”,myInteger,myString);3.2.2 变
5、量的命名(P30)基本变量命名规则:变量名的第一个字符必须是字母、_或者,其后的字符可以是字母下划线或数字。命名约定:Microsoft 建议,对于简单的变量,使用camelCase规则,而对于比较高级的命名则使用PascalCase。3.2.3 字面值(P31)逐字指定的字符串字面值:”C:TempMyDirMyFile.Doc”;注意:字符串是引用类型,而其他类型都是值类型,所以字符串也可以指定null值,即字符串变量不引用字符串。3.2.4 变量的声明和赋值3.3 表达式(P34)3.3.1 数学运算符举例说明运算符的位置与影响。问:int var1, var2 = 5, var3 =
6、6;var1 = var2+ * -var3. var1的值是多少?答:5*5=25 把运算符放在操作数的前面,则操作数实在进行其他任何计算前受到运算符的影响,而把运算符放在操作数的后面,则操作数是在完成表达式的计算后受到运算符的影响。3.3.2 赋值运算符(P38)3.3.3 运算符的优先级3.3.4命名空间Using用法:1、简化对已创建命名空间中包含名称的访问,例:Namespace LevelOne/nameOne defined;Using LevelOne;/nameOne.2、为命名空间提供一个别名,作为using语句的一部分LevelOne命名空间中的代码把LevelOne.N
7、ameThree引用为NameThree,把LevelOne.LevelTwo.NameThree引用为LT.LevelTwo.NameThree。如果using语句声明如下:这样全局命名空间中的代码和LevelOne命名空间就可以使用LT.NameThree。注意:using语句本身不能访问另一个空间中的名称,除非命名空间中的代码以某种方式链接到项目上,或者代码是在该项目的源文件中定义的,或在链接到该项目的其他代码中定义的。Using语句只是便于我们访问这些名称,减少代码量。第四章:流程控制(P44)4.1 布尔逻辑条件布尔运算符&&和|运算符与&和|运算符的区别是性
8、能比较好:如果&&的第一个操作数为false,就不需要考虑第二个操作数的值了,同样,如果第一个操作数是true,|运算符就直接返回true,无需考虑第二个操作数的值。而&和|的操作数总是要计算的。故要尽可能使用&&和|。4.1.1 位运算符a<<b相当于a*(2b),而a>>b相当于a/2并丢弃余数进行b次。4.1.2 布尔赋值运算符(P50)&=、|=、>>=、<<=4.1.3 运算符的优先级更新4.2 goto 语句(P52)4.3 分支?:运算符最常见用法:Console.WriteLine(
9、“In 0 year1 you will have a balance of 2” , totalYears , totalYears = 1 ? ” : ”s” , balance);注意:Switch分支中,一个case语句结束不能进入下一个case,但有一种情况例外,即一次检查多个条件,如下:4.4 循环4.4.1 do循环do循环的结构如下:do <code to be looped>while(<test>);提示:while后的分号是必须有的。4.4.2 while循环4.4.3 for 循环4.4.4 循环的中断(P69)break:立即终止循环。cont
10、inue :立即终止当前循环,继续执行下一次循环。goto :可以跳出循环到已标志好的位置上。return:跳出循环及其包含的函数。第五章 变量的更多内容(P73)5.1.1 隐式转换 隐式转换规则是:任何类型A,只要其取值范围完全包含在类型B的取值范围内,就可以隐式转换到类型B。其他具体见释疑文档。5.1.2 显式转换(P75)两个关键字checked(expression) 和unchecked(expression)例:short A = 267;byte B;B = checked(byte)A);5.1.3 使用Convert命令进行显示转换52 复杂的变量类型枚举,结构,数组5.2
11、.1 枚举(P81)Enum typeName Value1; Value2;ValueN;声明这个新类型的变量:TypeName varName;varName = typeName.value;枚举类型可提取的每个值都存储为该基本类型的一个值,在默认情况下,该类型为int。在枚举声明中添加类型,就可以指定其他基本类型:Enum typeName :underlyingType Value1;Value2; ValueN;枚举的基本类型可以是byte , sbyte , short , ushort , int , uint , long ,ulong.还可以使用一个值作为另一个枚举的基础值
12、。要获得枚举的字符串值,可以使用Convert.ToString(),使用(String)显示转换是不行的,因为需要进行的处理并不紧紧是把存储在枚举变量里中的数据放在string变量中,而是更复杂一些。另外,也可以使用变量本身的ToString()命令。也可以把string转换为枚举值,但其语法略复杂一些。有一个特定的命令用于这种类型的转换,即Enum.Parse(),使用方式如下:(enumberationType)Enum.Parse(typeof(enumberationType),enumberationValueString);5.2.2 结构(P85)struct <type
13、Name> <memberDeclarations> 要让调用结构的代码访问该结构的数据成员,可用关键字public。5.2.3 数组(P87)1、声明数组数组的初始化有两种方式:可以以字面形式指定数组的完整内容,也可以指定数组的大小,再使用关键字new初始化所有的数组元素。Int myIntArray = 1,2,3,4,5;Int myIntArray = new int5;(各元素默认数值为0)也可以使用非常量的变量来进行初始化:Int myIntArray = new intarraySize;也可以两者结合的方式声明,数组大小必须与元素个数相匹配:Int myInt
14、Array = new int51,2,3,4,5;也可以使用非常量的变量来进行初始化,但该变量必须是常量Const int arraySize = 5;Int myIntArray = new intarraySize1,2,3,4,5;2、foreach循环foreach(<baseType> <name> in <Array>) /can use <name> for each elementforeach 对访问数组只进行只读访问,不能修改。3、多维数组double, hillHight = 1,2,3,4,2,3,4,5,3,4,5,6
15、;第一位指定花括号,第二位指定花括号内的元素。4、数组的数组声明:Int jaggedIntArray;初始化的两种方式:可以初始化包含其他数组的数组,然后依次初始化子数组:jaggedIntArray = new 2;jaggedIntArray0 = new int 3;jaggedIntArray1 = new int 4;也可以jaggedIntArray = new int3=new int1,2,3,new int1,new int2,3;也可以简化,将数组的声明和初始化放在一行上:Int jaggedIntArray = new int 1,2,new int 2,new int
16、 3; 对变长数组可以使用foreach但通常需要嵌套该循环,才能得到实际的数据这是因为数组divisors1To10包含int元素,而不是int元素,必须循环每个子数组及该数组本身: 5.3 字符串的处理(P94)1、将字符串转为char数组:string myString = “Hello world!”;char charArray = myString.toCharArray(); 2、将字符串转换为大写或小写形式:<string>.ToLower(),<string>.ToUpper3、删除字符串中的空格:<string>.Trim();4、删除其
17、他字符5、删除字符串前面或后面的空格<string>.TrimStart();<string>.TrimEnd();6、处理字符串的空格,在字符串的左边或右边添加空格以达到要求长度<string>.PadLeft(<desiredLength>);<string>.PadRight(<disiredLength>);7、提供要添加到字符串上的字符String myString = “Aligned”;myString = myString.PadLeft(10,-);8、按提供符号拆分字符串Char separator =
18、 ;myString.Split(separator);第六章:函数(P100)第七章:调试和错误处理(P126)7.1 Visual Studio 中的调试7.1.1 非中断(正常)模式下的调试输出调试信息Debug.WriteLine();仅在调试模式下运行Trace.WriteLine();可用于发布程序由System.Diagnostics命名空间提供1、 跟踪点2、 诊断输出与跟踪点(P134)7.1.2 中断模式下的调试(P134)1、进入中断模式2、监视变量的内容(P138)自动窗口(Autos)当前使用变量和前面的语句(Ctrl+D,A)局部变量(Locals)作用域内的所有变
19、量(Ctrl+D,L)监视(WatchN)可定制的变量和表达式3、 单步执行代码(P140)中断模式下的程序流Step into:执行并移动到下一个要执行的语句上Step over:同上,但不进入嵌套的代码块,包括函数Step out:执行到代码块的末尾,在执行完该语句块后,重新进入中断模式4、 Immediate和Command窗口5、Call Stack窗口7.2 错误处理(P143)异常1、 trycatchfinally如果有一个或多个catch块,finally就是可选的,否则就是必须的。2、 列出和配置异常(P148)3、异常处理的注意事项第八章:面向对象编程简介(P151)8.1
20、什么是面向对象编程8.1.1什么是对象略为复杂的对象可能不包含任何数据,而只包含函数,表示一个过程。1、 属性和字段(P153)属性可以控制字段的只读、可写等。2、 方法8.1.2所有的东西都是对象8.1.3对象的生命周期8.1.4静态和实例类成员8.2 OOP技术第九章:定义类(P168)第十章: 定义类成员(P193)第十一章: 集合、比较和转换(P222)第十四章: Windows编程基础(P331)第十六章: 使用通用对话框(P414)16.1 对话框不同对话框所适用的场合16.2 如何适用对话框CommonDialog是对话框类的基类,所以所有对话框类的适用方式都是类似的。16.3
21、文件对话框16.3.1 OpenFileDialog(P417)1、 对话框的标题2、 指定目录注意:为了获取特定的系统文件夹,可以适用System.Environment类的静态方法GetFoldPath(),该方法接受一个Environment.SpecialFolder枚举成员,其中可以定义系统目录的路径。3、 设置文件过滤器4、 有效性验证(P419)5、 帮助6、 结果7、 OpenFileDialog的属性16.3.2 SaveFileDialog(P427)1、 对话框的标题2、 文件扩展名AddExtension是一个布尔属性,它把文件扩展名自动添加到用户输入的文件名上。其默认
22、值是True。3、 有效性验证为了自动验证文件名的有效性,应使用属性ValidateNames、CheckFileExists和CheckPathExists。4、 覆盖已有文件如果PromptCreate属性设置为True,就会询问用户是否要创建一个新文件,如果OverwritePrompt属性设为true,就会询问用户是否真的想覆盖已有的文件。5、 SaveFileDialog的属性第二十二章: 文件系统数据(P593)22.1 流流是串行化设备的抽象表示。串行化设备可以以线性方式存储数据,并可以以同样的方式访问:一次访问一个字节。有两种类型的流:输出流:当向某些外部目标写入数据时,就要用到输出流。输入流:用于将数据读到程序可以访问的内存或变量中。22.2 用于输入和输出的类FileStream 表示可写或可读或两者皆可的文件,此文件可以同步或异步的读写。StreamReader 从流中读取字符数据,可以使用FileSteam创建为基类。StreamWriter 向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025新版部编人教版小学三年级数学上册全册教案
- 重庆直播红娘培训课件
- 重大手术知识培训课件
- 老年人讲文明课件
- 老年人护肤基础知识培训课件
- 酿酒培训知识大全课件
- 人教版八年级英语下册专练:语法填空20篇(含答案)
- 2025版私人运输车辆融资租赁服务合同
- 2025版砂石场员工劳动合同补充协议
- 2025版智能社区外包电工维护保养合同
- 2025-2026学年人教版(2024)小学数学三年级上册(全册)教学设计(附目录P296)
- 碳中和技术概论全套教学课件
- 材料风险调差表
- 新媒体运营全套PPT完整教学课件
- 出境竹木草制品自检自控计划书(2021年报海关)
- 压力容器材料
- 招标投标法9个课件
- 100个最具争议的涉税经典稽查案例深度解析1增值税退税
- 高等数学上册ppt课件完整版
- 网店美工与视觉设计全书ppt完整版课件最全电子教案正本书教学教程
- 胸部检查(二)肺与胸膜检查
评论
0/150
提交评论