1C#基础笔记_第1页
1C#基础笔记_第2页
1C#基础笔记_第3页
1C#基础笔记_第4页
1C#基础笔记_第5页
已阅读5页,还剩58页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

作息时间表周一周五830900早自习早晨讲9001200上午正课12001400午休(补笔记、睡觉)14001730下午正课17301830晚饭18302030晚自习、完善笔记(理论代码练习)周六9301730串讲每天三个任务1每天理论必须理解(是什么,干嘛用,什么时候用)2当天练习必须会做(自己独立完成)3形成笔记保留下来(电子版)讲师建议学习注意事项1如果没有基础务必要勤加练习。2上课注意听,下课认真练,不懂有空就马上问。3课堂笔记(纸质总结性的理论,精华。电子版演示,实例。加深记忆,复习参考)。4尽量不要请假。5不要指望一听就懂,6注意理解原理,不要死记硬背语法。(是什么,为什么用,怎么用)7师傅领进门,修行在个人。NET背景知识2000年,比尔盖茨发布NETFRAMWORKHEJLSBERG海尔斯伯格NET之父NET可以做什么网站,手机操作系统WINFORM,桌面应用,企业应用,互联网应用,电子商务,移动应用什么是NET(DOTNET)NET不是一种语言,它是一个技术平台NETFRAMWORK平台(框架)以类为单位,用于构建互联互通的应用系统。NET支持的语言1语言CSHARP以C,JAVA,B为基础VISUALJJAVACOBOLVBNETVBVCNETCJSCRIPTNET2可否使用不同的语言构建一个程序1、NET跨语言特性,可以使用不同的语言(NET支持的语言)搭建同一个系统。3计算机语言发展史第一代语言机器语言1100010000101946年美国第一代计算机第二代语言汇编语言汇编语言,用一些简洁的英文字母、符号串来替代一个特定指令的二进制串第三代语言高级语言C、C、JAVA、C、VB、BASIC、FORTRAN、PASCAL4什么是NETFRAMEWORKCLS公共语言规范。定义了NET平台上运行的语言所必须支持的最小规范,用以避免不同语言特性产生的错误,实现语言之间互操作性。ASPNET做网站WINDOWSFORM做桌面应用系统ADONET做数据库XML业内标准NET类库所有类的仓库,NET提供的工具CLR(COMMONLANGUAGERUNTIME)公共语言运行库,是应用程序的执行引擎发动机,运行,核心WINDOWSFORM窗口OS操作系统5NETFRAMEWORK工作模式VBC编译器MSILCLR执行MSIL是将NET代码转化为机器语言的一个中间过程。他是一个介于高级语言和基于INTEL的伪汇编语言,与平台无关,独立于CPU指令集。CLR公共语言运行库,是应用程序的执行引擎发动机,运行,核心,是NETFRAMEWORK的基础。第一个程序编译过程文件名结构主文件名扩展文件名例如HELLOCSCS是CSHARP源代码文件扩展文件名代表文件的类型JPG、PNG、DOCX、PDF、TXT笔试题源代码CS编译1(公共语言规范MSIL)(生成F6)微软中间语言(EXEDLL)编译2(公共语言运行库CLR)双击EXE机器码1010运行在FRAMWORK框架里第一次编译的目的跨语言第二次编译的目的针对不同操作系统进行程序优化步骤编写源代码(CS)编译(BUILD生成一个可执行文件(EXE)执行(DOS早期的个人PC操作系统,无图形界面)一、写一段代码,然后要运行起来1编译步骤开始VS命令提示代表在DOS的操作环境下,光标所在的目录就是当前目录转换到D盘输入D回车代表到D盘找到MSD1407里的文件应输入文件名(CDMSD1407)回车转到MSD1407文件,就可以在MSD1407里编译编译命令(OUT输出的文件名)回车(生成可编译文件EXE)执行输入可执行文件名HELLOEXE查看输出结果2如果再次编译必须重新生成。编译命令回车(生成可编译文件EXE)执行输入可执行文件名HELLOEXE查看输出结果改变以后的结果3编译命令语法CSC参数要编译的源代码文件/OUT参数指定输出的文件名/TARGET指定输出的文件格式查找帮助文档CSC/回车出现4上下键是找之前输入过的内容二、/TARGET指定输出的文件的格式1、/TARGETLIBRARY指输出目标文件是库文件HELLOLL要生成的库文件名称/OUTHELLODLL指定这次所生成的文件的名称是HELLODLL生成一个DLL的文件TARGET目标LIBRARY库CSC编译命令生成的文件除了可执行文件(EXE)之外,还可以是库文件(DLL),库文件给其他的程序用的不是直接给用户用的2、代表指明这次要生成的目标文件类型是可执行文件(EXE),与结果是一样的,因为/TARGETEXE是默认结果,可加可不加,如果要编译生成的不是可执行文件就必须加如/TARGETLIBRARY要生成库文件就必须加3、练习题第一个不能执行原因是前面定义的是要求生成输出库文件第二个可以执行因为虽然生成DLL文件但是存放的是EXE可执行文件/OUT只是生成一个文件的类型只是代号不起作用,起作用的是/TARGETXX注释C代码是给计算机看的,注释是给程序员看的。如果要在代码中加入描述文字必须加上注释。系统编译时会自动忽略注释内容。如何用注释(养成加注释的良好习惯)/单行注释/多行注释作业熟悉常用的DOS应用熟悉常用的DOS命令应用1MD建立子目录2CD改变当前目录3DIR显示磁盘目录DIRDRIVEPATHFILENAME表示目录4DEL删除不能删除文件夹,只能具体删除文件5COPY复制文件不能复制文件夹,只能复制文件6TYPE显示文本文件内容7REN文件重命名(只能改变文件夹名不能改变文件的名88886666)8CLS清屏输入直接按回车就清屏9EXIT退出盘符D复习1、什么是NETNET不是一种语言,它是一个技术平台,用于构建互联互通的应用系统。2、NET支持的语言CSHARP以C,JAVA,B为基础VISUALJJAVACOBOLVBNETVBVCNETCJSCRIPTNET3、可否使用不同的语言构建一个程序NET跨语言特性,可以使用不同的语言(NET支持的语言)搭建同一个系统。4、计算机语言发展史第一代语言机器语言1100010000101946年美国第一代计算机第二代语言汇编语言第三代语言高级语言C、C、JAVA、C、VB、BASIC、FORTRAN、PASCAL5、编译步骤编写源代码(CS)编译(BUILD生成一个可执行文件(EXE)执行了解VS及CONSOLE常用方法项目的目录结构使用VS创建的项目都包含在一个解决方案(SLN即SOLUTION)中,一个解决方案可以包含多个项目,SLN文件就是解决方案文件(不能删除)CSPROJ文件是项目文件,不可删除。PROPERTIES文件夹也不可删除。BIN和OBJ是编译时生成的东西,可删除。解决方案SLN项目CSPROJ源代码文件CS项目里添加源代码文件即添加类VS工具的优点(1)通过不同的颜色区分不同的内容1、蓝色内置关键字(关键字)2、青色代表类名、结构名3、红色字符、字符串4、绿色注释4、黑色其他快捷键ALT右箭头,调出智能提示SHIFTDEL,整行删除(2)C代码大小写敏感,大写小写是不同的含义红色的波浪线语法错误蓝色的波浪线编译错误(编译生成后提示的错误)绿色的波浪线警告(3)智能提示程序执行F1MSDN帮助文档F5编译,执行两步程序的默认执行顺序从上往下单句执行CONSOLE类1、类相当于一套工具CONSOLE就是一个类,用来为控制台程序提供支持,内部包含了很多具体的工具。表示控制台应用程序的标准输出流,输入流和错误流,它对从控制台读取字符。例如WRITE仅仅输出,光标不换行WRITELINE输出内容在换行结果这些工具分成两类方法和属性方法的标志是都带有();属性的不是带()REGION和ENDREGION整理段落作业制作一个学生成绩管理系统控制台出现滚动条,是因为数据缓冲区的大小大于窗口的大小答案变量程序运行在内存中程序处理数据定义、声明、赋值1、变量,保存数据的一个容器,以便多次使用此数据2、声明变量的语法数据类型变量名声明在内存中开辟一块空间赋值在该空间存储数据,变量可重复赋值,不可重复声明变量作用域从声明开始到“”结束3、声明的同时也可赋值,STRINGNAMES“TOM“;4、此方法用于获取用户录入的一行内容5、“”可用于字符串的拼接CONSOLEWRITELINE126、字符串和数值相加,结果是字符串CONSOLEWRITELINE“HELLO“WORLD“7、给变量赋值时,类型必须与声明变量一致变量名称的命名规则望文生义推荐命名方法匈牙利命名法类型前缀单词(首字母大写)例如给变量赋值时,类型必须与声明变量一致C内置的数据类型为什么要用多种数据类型因为不同的数据类型在内存中开辟空间的大小不同,BYTE开辟1KBINT4KBDOUBLE64KB1KB有八位01010101数值型、非数值型整数小数若果直接写小数,会直接默认为DOUBLE类型非数值类型1、CHAR单字符类型,代表单个字符2、STRING字符串3、DATETIME时间类型输出结果是当天时间4、BOOL布尔类型,代表是非、真假、对错输出结果是FALSE练习转义符代表转义符,用于输出一些特殊的内容,例如换行N转义符会配合一些字符共同描述某个含义,例如换行N输出结果N换行A警告B退格F换页R回车T制表V垂直制表”引号反斜杠0空格“0“替换空字符0防止转义占位符占位符运行后变量会替换到相应的占位符为了不再拼接字符串缘分计算器占位符占位顺序取决于后面的顺序,占位符的索引从零开始必须大于或等于零,且小于参数列表的大小,即占位符的索引不得大于后面的变量。格式化字符串“0C”运算符1、运算符有操作数和返回值12运算符有输入值,是1和2;输出值是3(16/3)(6898)16/3和6898都是的输入值即操作数;输出值(即返回值)2、运算符分类(按照操作数的数量分类)一元运算符一个操作数II二元运算符两个操作数/BTBT3不能转换9、条件运算符相当于IFELSEXYZX是条件Y和Z只能是表达式小练习是字符串作业运算使用条件运算符实现如下功能从键盘上录入三个数值,使用找出最大的一个10、运算符的优先级与运算符优于或运算符作业I,I类型转换为什么要转换变量声明时的类型和赋值时的类型必须一致。而实际赋值的时候,数据的类型往往和声明时不一致,所以需要转换类型显示式转换可能不安全,隐式转换安全显式、隐式转换都不能用于不兼容的类型转换,自动检测错误1、隐式转换安全通常数值间从小范围的数据类型转换到大的范围的数据类型时,系统会做隐形转换,不会发生超出范围情况,不会有风险,不会丢失精度如2、显式转换(不安全)显式转换(强制转换)用于从大范围到小范围类型的转换语法目标类型变量2(目标类型)变量1BYTEBBYTEIBYTE是目标类型INTXINTY里是目标类型如下转换会出现错误即提示说算术运算导致溢出CHECKED用于检测算术运算是否溢出丢失精度,如果丢失精度,则引发异常格式如下显示转换可能不安全,隐式转换安全结果是3,精度丢失3、PARSE转换字型串转为对应数据类型语法目标数据类型变量2目标数据类型PARSE(字符串即被转换的变量1)所有的内置函数类型上都有PARSE方法日期类型也不可以直接转换成字符串类型,可用PARSE方法从字符串转换为某种方法如1、INTPARSE方法会将字符串转换为INT类型2、把字符串CONSOLEREADLINE转换为DOUBLE类型3、也可以注意4TOSTRING,其他数据类型转换成字符串语法STRING变量2变量1TOSTRING5、CONVERT各种内置数据的转换语法目标类型变量1CONVERTTO目标类型变量2)如INTITOINTA练习温度转换TRYPARSE通过BOOL表达式配合TRYPARSE使用,防止类型转换失败。语法TRYPARSE(待转字符串,OUT转出的变量名)常量常量CONST,用在内容固定不变的地方,1、一旦声明初始化就不能改变。2、初始化声明后必须赋值。3、常量的初始化必须是声明的明确的数据。(编译时必须是一个明确的数字)命名规范字母全大写控制语句控制语句为了改变程序默认执行顺序控制语句的分类选择语句、循环语句、跳转语句选择语句主要用于系统的业务逻辑循环语句起辅助作用跳转语句选择语句IFELSE根据一个条件是否满足,决定下一步执行哪句代码1、标准IF语句例如IF后不加分号如果里只有一条语句那么可以把去掉,但有风险,会有二义性,如IF(X0)IFY1Z1ELSEZ2机器会认为ELSE是与它最近的那个是配套的2、嵌套语句语法嵌套IF书写要点,如何确定外层、内层的条件外层先确定大的范围,内层确定小的范围。IF和ELSE里都可以加嵌套,例如3、多重IF语句多个条件之间是平级关系1、IFELSE逐步细化,外层条件划分大范围,内层条件细化2、多重IFELSE多个条件之间是平级的SWITCHCASE语句SWITCHCASE和IFELSE相似注意SWITCH,里可以是INT,STRING,BOOL,CHAR,枚举类型SWITCH和多重IF的区别相同点都可以实现多路分支不同点1、多重IF实现两,三路分支,SWITCH实现三重以上2、SWITCH只能判断常量,多重IF可以用于区间判断循环语句重复执行某段代码FOR循环语句循环顺序注意循环变量所经历的值;循环次数适用性确定次数的循环对特定条件进行判断后才允许执行循环,这种循环用于将某个语句或语句重复执行预定次数的情行语法1、标准形式断点程序执行到断点的时候会暂停2、其他形式(1)(2)4、死循环5、循环中的控制BREAK退出循环CONTINUE终止本循环(即本次循环中循环体内CONTINUE之后的不再执行),继续下一次循环6、变量的有效范围FOREACHFORREACH数组中的元素的类型元素IN数组只能拿出数组中的元素,不能赋值,改变CONSOLEWRITELINE元素WHILE循环语句适用性不确定次数的循环,是否继续有循环体决定,先判断后执行(只考虑什么时候继续)语法FOR循环和WHILE循环可以转换WHILE循环用在什么地放呢循环次数不固定的情况下FOR循环放在循环次数固定的情况下DOWHILE循环适用性不确定次数的循环,是否继续有循环体决定,先执行后判断DOWHILE循环,限制性循环体再判断,所以即使条件不满足,至少也执行一遍循环体FOR嵌套1、2、3、跳转语句GOTOBREAK、CONTINUE、GOTO跳转语句GOTO,尽量少用,会造成程序混乱GOTO应用场景应用在多层循环嵌套的内层直接跳出应用场景递归调用1结束的条件2循环内容例题11235813213455方法什么是方法语义表示一个行为小功能,由一系列语句组成语法是类的一个成员方法的作用实现模块化开发,代码可以复用适用性包装或组织一个行为需要使某算法得到复用需要表示一个行为定义方法(HOW)访问修饰符其它修饰符方法返回值类型方法名(参数列表)/方法体方法参数语义一个消息,由调用者向方法传递的消息理解从调用者角度,调用者希望方法完成指定的操作。从方法自身角度,完成一个行为时,有些数据是未知的,所以需要向调用者索取语法(参数数据类型参数的名称,参数数据类型参数的名称)方法返回值语义行为执行后,所产生的结果,并返回给调用者语法定义DOUBLE方法()实现RETURN数据方法写在类里面。方法与方法平级,不能写在MAIN方法里面定义方法PUBLIC公有的(对外的)PRIVATE私有的(类的内部)PROTECT受保护的VOID没有返回值例如STATIC必须加DOUBLE返回值类型,如果没有就写VOIDCOMPUTEAREA方法名,自己起(DOUBLER)参数列表R参数的名字方法体调用方法1、有参数,有返回值调用方法方法名(参数R)2、无返回值,无参数的方法调用方法定义方法结果3、定义多个参数的方法(有返回值的)调用方法定义方法提炼方法方法重载OVERLOAD语法同一类中,多个名称相同,参数不同的方法共存,这些方法形成了重载参数不同类型或个数语义同一个方法有多个不同版本适用性方法实现的目标是一致的,只是在实现上所需参数不同,这时可以将多个方法起同一个名字,形成重载优点1增强代码可读性2减少了记忆量,不需要为每个不同参数的方法记一次名字3无需为多个实现同样功能的方法起不同的名字4有效的组织了同一类方法作用域局部作用域方法体内声明的变量,在方法内有效,在声明之后有效类作用域(全局变量)作用范围在整个类范围内调用方法方法的参数分两种值类型参数,引用类型参数方法参数默认为1、值参数,赋值数据2份2、引用参数,REF(侧重改变数据)赋值引用数据1份,进来先赋值3、输出参数,OUT重在输出出去要先赋值调用方法时,形参实参要一一对应实参(实际参数)调用方法时的参数形参(形式上的参数)方法定义是的参数值类型值类型参数传递给方法时,传递的是参数数据的副本而不是参数本身引用类型参数数组基础、声明、赋值是什么一组数,是一种线性数据结构,数据容器,也是一种数据类型有什么用容纳多个同类型数据,统一管理和处理多个数据用在哪需要容纳多个同类型数据时需要统一处理多个数据时确定容量的数据,且要求读取速度快怎么用声明元素数据类型数组名称赋值数组的特点空间连续,固定大小优点因为空间连续,所以读取速度快缺点因为空间连续,所以不能动态增容二维数组二维数组就像具有行和列的表格。二维数组具有两个索引,分别代表行(前面)、列(后面)。INT,SCORENEWINT5,2;GETLENGTH0行GETLENGTH1列声明初始化赋值读取赋值名称行,列属性练习5个学生参加了2门课的考试,统计出每个学生平均成绩,2门课的平均成绩。交错数组交错数组就是元素为数组的数组(数组的嵌套)。交错数组元素大小可以不同(元素就是数组,指的是交错数组中的数组大小可以不同)。声明一个由5个元素组成的一维数组,其中每个元素都是一个一维整数数组。INTSCORENEWINT55为外围数组(行)为内在数组练习录入学生个数,考试科目数量,及相应成绩PARAMS参数数组通过关键字PARAMS定义参数数组用于方法参数不固定的场合可以传递数组,也可以传递类型相同的多个变量。作用在对数组长度未知(可变)的情况下进行函数声明。注意数量不限。参数数组必须是方法声明中的最后一个参数。方法最多只能有一个参数数组。只能在一维数组上使用PARAMS关键字。CONSOLEWRITELINE中使用占位符,就是使用参数数组实现的。SYSTEMARRAY类常用属性LENGTH、LONGLENGTH、RANK常用方法1、拷贝ARRAYCOPY、ARRAYCOPYTO2、排序ARRAYSORT3、反转ARRAYREVERSE4、查找ARRAYINDEXOFARRAYLASTINDEXOFCONTAINS5、清空ARRAYCLEAR最大、ARR1MAX最小、ARR1MIN平均值、ARR1AVERAGE求和ARR1SUMPARAMS适用性只能用于方法的参数,且参数的类型,在一个方法参数列表中,只能出现一次,且作为一个参数出现枚举列举某个数据的所有取值适用性取值在较小的范围作用增强代码的可读性,保证代码安全,限制取值怎么用(最好另起一个文件)声明标志枚举FLAGS定义时添加FLAGE特性显示类型ENUM枚举名称枚举项默认01234“|”按位或运算,有1结果为1,可以多选,调用STATICVOIDENUMCTSCOMMONTYPESYSTEM公共类型系统CLS公共语言规范CLR公共语言运行时FCL基础类库MSIL微软中间语言,运行在CLRJIT即时编译器()适用性1、取值在一个固定范围2且范围较小值类型,引用类型值类型有两种枚举和结构(DATETIME)栈后进先出,放进去的内容要小,要常用,放值类型的内容和地址,引用类型的地址INT的地址RANDOMRANDOM堆空间无限,放引用类型的内容INT的内容从栈拿地址,从堆里找内容NEWRANDOMRANDOMRANDOMNEWRANDOM从栈拿地址,从堆里找内容值类型声明在栈中,数据存储在栈中枚举,结构,INT(存放数据本身)引用类型存引用的内存地址的声明在栈中,数据存储在堆中类,接口,数组,委托OBJECT,STRING(类)(存放数据地址,数据在堆中引用)数组装箱、拆箱装箱是什么类型的拆箱后就必须是什么类型例如这是将A装箱在拆箱成INT类型;然后在默认转为DOUBLE类型,这是可以的装箱值类型转化为引用类型值类型隐式转换为OBJECT类型只有OBJECT或者接口1、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论