版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《C#程序设计》教案第1章课时内容.NET架构授课日期授课时长课时教学目标思政目标:☞理解学习的重要性,树立正确的职业道德观☞了解.NET的框架内容,对其发展历史有较清楚的认识,培养探究精神技能要求:☞理解什么是.NET、C#语言☞掌握.NET架构的相关知识实践目标:☞能够知道.NET架构的组成☞能够制定专业发展目标教学设计教学思路:通过对.NET发展背景的讲解,掌握.NET框架内容教学手段:通过课件展示和软件知识的解析深入学习C#的背景知识。教学环节教学内容讨论问题1.什么是.NET?2..NET和C#之间的关系是什么?3..NET和微软的关系是什么?内容大纲1.1.NET平台概述2000年6月微软公司公布了其下一代基于互联网平台的软件开发构想,即.NET。.NET的构想在IT行业引发了极大的反响,持续至今。1.2.NET优势.NET是第三代因特网的高分布式环境下的应用程序开发,实现不同语言和平台的高度交互,基于开放的互联网标准和协议而构建的新一代计算和通信平台。.NET是一款跨语言开发平台,它不是一门编程语言。1.3.NET相关的部分程序设计语言1.VB语言2.C语言 3.C++4.C#1.4.NET的相关课程与.NET开发有关的方向及课程有C#程序设计、SQLServer数据库、ASP.NET应用开发、ASP.NETMVC高级开发、.NET开发综合实战、UML建模与设计模式、软件测试技术等。1.5.NET的核心组成.NET主要由三大部分组成,分别是CLR、BCL和编程工具。课后练习1.简述.NET框架。2.如何理解语言无关性?3.如何理解CLR、BCL的作用?4.如何理解.NET与C#的关系?《C#程序设计》教案第2章课时内容开发环境授课日期授课时长课时教学目标思政目标:☞通过搭建开发环境练习,正确使用相关开发工具,探究事物规律☞了解C#的大致内容,培养规范化的编程行为,维护网络安全☞理解学习的重要性,树立正确的职业道德观技能要求:☞掌握开发环境的配置☞掌握VisualStudio的使用方法实践目标:☞能够正确安装并使用VisualStudio☞能够创建项目,调试程序教学设计教学思路:通过搭建开发环境,掌握软件的使用;通过创建项目案例,学习调试程序。教学手段:通过课件展示和软件操作学习开发环境的搭建和软件的使用。教学环节教学内容讨论问题1.什么是C#语言?2.VisualStudio是什么?3.调试程序的步骤有哪些?内容大纲2.1VisualStudio的介绍MicrosoftVisualStudio是微软公司开发的集成工具。它性能优良,有出色的代码管控工具、集成开发环境,其代码适用于微软支持的所有平台。微软支持的平台有MicrosoftWindows、WindowsPhone、WindowsMobile、.NET、WindowsCE、.NETCore、.NETCompactFramework和MicrosoftSilverlight。2.2VisualStudio安装与配置VisualStudio是功能完备的编程工具,是性能优良的集成开发环境。它是众多编程人员的首选开发工具,适用于Windows、Web、Android以及iOS开发。2.3工具栏与使用技巧2.3.1工具栏VS工具栏中有文件、编辑、视图、Git、项目、生成、调试、测试、分析、工具、扩展、窗口和其他等功能。2.3.2VisualStudio使用技巧1.设置行号2.主题3.任务列表2.4创建项目通过创建一个简单的项目,学习VisualStudio的使用。通过运行程序,掌握正确运行软件的方法。课后练习1.安装VisualStudio。2.将VisualStudio主题设置为深色主题。2.练习创建一个新项目。3.调试初始化程序,保存程序文件。《C#程序设计》教案第3章课时内容C#程序与数据类型授课日期授课时长课时教学目标思政目标:☞通过学习数据类型及转换,培养学生的认真、细致的编程态度☞通过编程练习,培养学生分析问题和解决问题的能力技能要求:☞掌握C#基本语法要求☞掌握C#中的基本数据类型及转换☞正确理解变量的命名规则,学会使用值类型和引用类型实践目标:☞通过认识C#基本语法,为深入学习打基础☞认识变量与数据类型,能够在编程中正确运用☞熟悉变量的使用,能够在适当场景中使用教学设计教学思路:通过案例讲解学习数据类型及转换;通过编程练习掌握C#基本语法要求。教学手段:通过课件展示、编程练习、课后习题学习C#中的基本数据类型及转换和变量的命名规则。教学环节教学内容讨论问题1.C#中的数据类型有哪些?2.数据类型之间如何进行转换?3.C#中变量的命名规则有哪些?4.变量和常量之间有什么不同?内容大纲3.1编写首个C#程序3.1.1编写程序我们从一个简单的C#程序开始,去认识C#语言的基本构成。输入如图3-1所示代码,运行结果如图3-2所示。图3-1第一个C#程序图3-2运行结果观察上述程序,分析程序的组成部分。从运行结果可知,代码中的语句被输出到屏幕。整个程序包括usingSystem、namespace、class、Main方法、语句或表达式,以及注释。这些内容构成了一个完整的程序。3.1.2程序详解通过分析程序的组成,了解程序的基础内容。程序的组成如图3-3所示。图3-3程序组成3.1.3注释方法在程序中,经常用到注释。注释是一种备注手段,主要为了方便程序编写和维护人员修改、维护代码。注释内容并不会被程序编译器运行,即注释不会影响程序运行的结果。在C#中,主要有3种注释方式。图3-4注释方法3.1.4标识符与关键字1.标识符标识符是用来命名变量、方法、参数等的一种字符串。程序中标识符的位置有规定:数字不能放在首位;字母和下划线随意使用;@字符只能放在标识符的首位;标识符区分大小写,如MyCar与myCar是不同的标识符。需要注意的是,标识符不能与C#的类库名称相同。2.关键字关键字是C#编译器预定的保留字,用于定义固定内容。关键字不能用作变量名,也不能用作标识符,关键字应全部小写。3.2常量与变量3.2.1常量常量是指在程序运行过程中,值不改变的量。通常,程序中多次出现且固定不变的值定义为常量。3.2.2变量变量是指在程序运行过程中,值可以改变的量。变量具备两个要点:变量名和数据类型。变量名可以方便访问变量中所存储的数据,而数据类型决定了变量的存储方式。变量被分配存储空间后才能正常使用,而变量名其实就是为其所分配内存空间的命名。通过变量名可以访问相应存储空间中所存储的数据。1.变量的命名2.变量的命名法3.变量的赋值3.3数据类型3.3.1整型表整型数据类型类型说明范围sbyte8位有符号整数-128~127byte8位无符号整数0~255short16位有符号整数-32768~32767ushort16位无符号整数0~65535int32位有符号整数-2147483648~2147483647uint32位无符号整数0~4294967295long64位有符号整数-9223372036854775808~9223372036854775807ulong64位无符号整数0~184467440737095516153.3.2布尔类型bool类型的变量仅有两个值:true和false。true和false两种状态的转换可以通过“!”运算符来实现。3.3.3char类型无论中文字符、英文字符或者数字都归属于char类型,char类型占两个字节,故最多可以容纳65536个符号,其取值范围为0~65535。char类型的赋值需要以成对单引号标记。3.3.4枚举类型枚举类型被用来表达若干固定值,该类型使用enum定义,定义方式如下:enum枚举类型名称{枚举元素1[=数值1],枚举元素2[=数值2],…}3.3.5隐式类型隐式类型用var声明,var关键字是“万能类型”的定义方式,可以用来声明任何类型的变量,但并不意味着声明之后其类型仍不确定。3.3.6浮点类型浮点类型,分别是float、double和decimal,如表3-4所示。float和double都为浮点类型,分别称为单精度浮点型和双精度浮点型;而decimal,一般用于精度要求高的场合。小数类型(decimal)是高精度的数据类型,占用16个字节(128位),主要为了满足需要高精度的财务和金融计算机领域。3.3.7数据类型转换1.隐式转换2.显式转换3.Type.Parse4.Convert5.装箱与拆箱课后练习1.练习本章所有示例代码。2.简述数据类型之间的区别。3.编写程序并运行,使其输出结果为如图所示的金字塔。金字塔《C#程序设计》教案第4章课时内容运算符与语句授课日期授课时长课时教学目标思政目标:☞加强动手能力,培养实事求是、严谨的学习态度☞认真修改并测试程序代码,树立新时期下的程序员精神技能要求:☞熟练掌握程序各种语句☞掌握C#中的运算符实践目标:☞根据所学的示例,能够自己实现一个简单程序☞熟练掌握语句,能够在不同条件下正确使用教学设计教学思路:通过对比不同运算符的用法掌握运算法;通过案例讲解运算符的使用;通过表格记忆运算符的优先级;通过案例讲解流程控制语句。教学手段:通过课件展示、编程练习、课后习题学习运算符和流程控制语句。教学环节教学内容讨论问题1.运算符是什么?2.流程控制语句是什么?3.运算符的优先级是什么意思?内容大纲4.1运算符表达式就是由运算符和操作数组合而成。根据操作数的个数,运算符可以分为一元运算符、二元运算符和三元运算符。例如,取负(-)、取反(~)、自增(++)和自减(--)都是典型的一元运算符;而四则运算符(+、—、*、/)则是典型的二元运算符;三元运算符仅有一个,那就是条件运算符(?:),可以用来改写简单的if结构语句。根据运算的类型,运算符又可以分为算术运算符、赋值运算符、关系运算符、逻辑运算符和条件运算符等。4.1.1算术运算符最常见的运算符就是算术运算符,算术运算符的具体内容如表4-1所示。表4-1算术运算符运算符说明示例+加ints=2012+2015;inti=0,j=1;intk=i+j;—减ints=2012-2015;inti=0,j=1;intk=i-j;*乘ints=2012*2015;inti=0,j=1;intk=i*j;/除ints=2012/15;inti=2020,j=10;intk=i/j;%取模ints=2012%15;inti=2020,j=10;intk=i%j;++自增1inti=2012;intj=i++,k=++i;--自减1inti=2015;intj=i--,k=--i;4.1.2关系运算符关系运算符的运算结果是布尔值,要么为true,要么为false。关系运算符用于比较两个操作数的大小关系,值是比较的结果,如表4-2所示。表4-2关系运算符运算符说明运算符说明==等于<小于!=不等于<=小于或等于>大于>=大于或等于注意:==与=表示含义不相同,前者表示相等,后者表示赋值。4.1.3赋值运算符表4-3赋值运算符运算符说明运算符说明=赋值<<=左移赋值+=加法赋值>>=右移赋值-=减法赋值&=and位操作赋值*=乘法赋值|=or位操作赋值/=除法赋值^=xor位操作赋值%=取模赋值4.1.4逻辑运算符逻辑运算符有&、|、!、^、~、&&、||。其中,&和|执行按位的“与”和“或”,而~和^执行按位的“非”和“异或”。&&和||执行布尔的“与”和“或”,而!执行布尔的“非”。另外,要注意区分位运算和布尔运算。表4-4二进制数位运算的结果运算类型值x&yx和y同时为1时,结果为1,其他情况结果均为0x|yx和y任一个为1时,结果为1,同时为0时结果为0x^yx和y同为0或1时,结果为0,x和y的取值不同时结果为1~Xx为0时结果为1,x为1时结果为04.1.5条件运算符条件运算符是一个三元运算符,由“?”和“:”组成,以条件运算符构成的表达式称为条件表达式。其一般格式如下:操作数1?操作数2:操作数34.1.6位运算符表4-6位运算符运算符说明运算符说明&and(与)|or(或)~取反^xor(异或)>>右移位<<左移位4.1.7自增自减自增运算符(++)和自减运算符(--)的使用频率相对较高,它们都具有两种形式:前缀和后缀。此处主要介绍自增运算。前缀自增便是++在操作符前面,如++i;后缀自增便是++在操作符后面,如i++。两者都是实现i递增1,即i=i+1。4.2运算符的优先级常见运算符的优先级如表4-11所示,从上到下优先级逐渐降低。表4-11运算符的优先级运算符类型运算符初级运算符(),[],x.y,++(后缀),--(后缀),new,sizeof,typeof,checked/unchecked一元运算符!,~,++(前缀),--(前缀),(T)x乘除、取模运算符*,/,%增量运算符+,-移位运算符<<,>>关系运算符<,>,<=,>=,is,as等式运算符==,!=逻辑与运算符&逻辑异或运算符^逻辑或运算符|条件与运算符&&条件或运算符||条件运算符?:赋值运算符=,*=,/=,+=,-=,<<=,>>=,&=,^=,|=,%=4.3流程控制语句4.3.1if-else语句if语句是最常见的程序流程控制语句,它可以配合else或者elseif来无限扩展选择执行的分支。if语句的使用形式有如下四种,但无论采用哪种方式,无论产生多少分支,最终,也只有一个分支能够得以运行。4.3.2switch语句switch语句与if语句类似,也是在众多分支中选择一个匹配的分支来执行。其执行机制是:根据表达式的值,在各个case中寻找相匹配的,若找到,则执行相应的语句序列直到遇到break,若没有,则在default分支存在的情况下,执行default分支。4.3.3for语句for语句是最常使用的循环语句,特点是使用方式的灵活。其执行机制是:首先,执行初始化语句;其次,执行条件测试语句,当条件测试语句返回true时,接着执行循环语句序列;最后,执行迭代语句,这是第一次循环的过程,除第一次循环,其他时刻不再执行初始化语句。从第二次循环开始,每次首先执行条件测试语句,成立则执行循环语句序列,再执行迭代语句,然后又进入下一轮循环的条件测试语句判断,直至该语句不成立时,整个循环方才结束。4.3.4while语句其执行机制是:首先执行条件表达式,若为真则执行循环语句序列,接着再执行条件表达式,直到条件表达式不成立退出循环为止,继而执行循环体之外的语句。当条件表达式第一次就不成立时,此时循环语句序列不会获得任何执行机会。4.3.5do-while语句其执行机制是:首先执行循环语句序列,然后执行条件表达式,若为真则接着执行循环语句序列,接着再执行条件表达式,直到条件表达式不成立退出循环而执行循环之外的语句。从其执行机制可以看出,do-while与while的区别在于,do-while语句中的循环语句序列至少会获得一次执行机会。4.3.6break语句break语句可强行退出循环,即将程序的执行流程从循环内转到循环外。课后练习1.练习本章所有示例代码。2.简述各语句的特点。3.假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式的是()。A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c4.操作题。(1)从键盘上输入三个整数,由用户回答它们的和、差、积、商和取余运算结果,然后统计出正确答案的个数。(2)请利用本章所学内容,找出所有介于10~1000之间的偶数(使用for、while、do…while3种循环分别实现)。《C#程序设计》教案第5章课时内容数组授课日期授课时长课时教学目标思政目标:☞逻辑是代码设计中的关键,通过学习数组,加强逻辑思维能力☞通过编程训练,培养动手能力及团队协作能力技能要求:☞掌握数组的基本概念、声明及初始化☞了解数组的访问与遍历☞了解数组的Array类☞理解并掌握索引器的定义和使用实践目标:☞能够在编程中熟练使用数组☞能够对数组进行基本的操作,为以后的编程做铺垫教学设计教学思路:通过讲解,学习数组的声明、数组的初始化、Array类和索引器等内容。教学手段:通过课件展示、编程练习、课后习题学习数组的声明和初始化、访问数组、数组的基本操作。教学环节教学内容讨论问题1.数组是怎么声明的?2.怎样访问数组中的元素?3.什么是索引器?内容大纲5.1数组的声明和初始化数组是一个数据结构,用来存储相同类型元素。其中,需要说明的有以下两点。(1)数组分为一维和多维,其访问方式由相同数组名称和不同索引来实现。(2)元素的类型可以是引用类型或者整型这些基本类型。5.1.1数组的声明使用数组前,需要对数组先进行声明。在数组的分类中,一维数组的使用最普遍,其一般声明方式如下:类型[]数组名称=new类型[数组大小];5.1.2数组的初始化数组的初始化一般采用如下方式:类型[]数组名称=new类型[数组大小]{与数组大小相等个数的元素值列表};5.2访问元素数组的访问是通过数组名和索引来进行的,其中,索引从0开始5.3数组的基本操作5.3.1Array类在C#中,System.Array类是基类,所有数组都继承自它。该类提供了一系列的属性和方法,用于各种数组。1.Array的常用属性2.Array的常用方法5.3.2索引器索引器是一个与属性很类似的类成员,可以具有get和set两个访问器,分别用于实现读和写的功能。索引的主要不同之处在于:定义索引器时一定要使用this关键字,而不需要像定义属性一样要程序编写人员定义一个属性名字;索引器一定需要参数;索引器不能定义为static。课后练习1.练习本章所有示例代码。2.简述数组和索引器的区别。3.随机生成20个整数,并且这20个随机数的正负性也随机处理,然后将这20个随机数存入数组,最后将这20个随机数中的正数存入另外一个数组。《C#程序设计》教案第6章课时内容类和方法授课日期授课时长课时教学目标思政目标:☞理论来源于实践,通过实践操作,激发对编程的兴趣☞通过面向对象程序设计方法的学习,提高抽象思维能力技能要求:☞掌握面向对象程序设计的基本概念☞了解类与对象、字段、属性、方法的概念及用法☞理解并掌握Main()函数和static方法的用法实践目标:☞根据示例,对所学的概念进行验证☞熟练应用面向对象方法实现编程设计☞能够通过练习进一步认识面向对象设计方法教学设计教学思路:通过讲解,学习类与对象、字段、属性、方法、main()函数、static、构造函数与析构函数、继承、多态、类的密封等内容。教学手段:通过课件展示、编程练习、课后习题学习类与成员、类方法、类的派生。教学环节教学内容讨论问题1.什么是面向对象?2.面向对象的三大特征是什么?3.什么是类?4.类的派生有哪些?内容大纲6.1类与成员6.1.1类与对象面向对象是一种软件开发方法,它的三大基本特征如下。(1)封装。它将数据及对数据的操作封装为一个有机不可分割的整体,对外隐藏具体实现细节,从而实现可重用、易维护等优秀特性。(2)继承。子类从父类获得父类特征,同时也可以扩展自己新的特征。继承也能实现代码重用。(3)多态。多态性意味着有多重形式,往往表现为“一个接口,多个功能”。6.1.2字段字段即类中的常量或者变量,它使类具备封装数据的能力。6.1.3属性1.常规属性2.自动属性6.1.4方法1.方法的定义与使用2.方法的重载3.参数的个数不定问题——params4.this6.2类方法6.2.1Main()函数Main()函数也称Main()方法,它是一种特殊的方法。其特殊之处如下:(1)Main()函数是可执行程序的入口点,且是唯一的入口点。(2)Main()函数可以带一个字符串数组参数,也可以不带参数。(3)Main()函数一般为void类型的,也可以声明为int类型。(4)Main()函数可以声明为static,也可以声明为非static类型。(5)应用程序的执行在Main()中开始,也在Main()中结束,对应的线程为主线程。6.2.2Static类的成员类型分为静态的和非静态的,因而方法也分为静态方法和非静态方法(即实例方法),使用static的方法是静态方法,没有使用的就是非静态方法。静态方法和非静态方法的区别是:静态方法属于类所有,非静态方法属于用该类定义的对象(实例)所有。6.2.3构造函数与析构函数1.构造函数2.析构函数6.3类的派生6.3.1继承6.3.2多态6.3.3类的密封课后练习1.练习本章所有示例代码。2.请简述类和对象的关系。3.请简述方法和属性各自的作用。4.如何理解继承和多态?《C#程序设计》教案第7章课时内容委托与事件授课日期授课时长课时教学目标思政目标:☞科学观念对学习有决定性作用,通过编程培养科学观念☞通过委托与事件的学习,提高抽象思维能力技能要求:☞掌握委托与事件的基本概念☞了解委托与事件的使用☞了解匿名方法与普通方法的区别、匿名类的创建Lambda表达式的使用实践目标:☞根据示例,对所学的概念进行验证☞熟练应用面向对象方法实现编程设计教学设计教学思路:通过讲解,学习委托的概念、委托的使用、多播委托、事件的概念、事件的使用、三类事件等内容。教学手段:通过课件展示、编程练习、课后习题学习委托、事件、匿名方法、Lambda表达式。教学环节教学内容讨论问题1.什么是委托?2.怎样声明委托?3.什么是事件?4.怎样声明事件?内容大纲7.1委托7.1.1委托委托的作用在于:可以将方法引用封装在委托对象内,然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。通俗的说就是:通过委托,我们可以把方法当成参数传递。7.1.2委托的使用1.声明委托2.实例化3.调用7.1.3多播委托7.2事件7.2.1事件7.2.2事件的使用1.定义事件委托2.定义事件触发类(用于产生事件)3.定义事件接收类(用于处理事件)7.2.3三类事件1.无参类型2.带参类型3.自定义参数类型7.3匿名方法匿名方法就是没有名称的方法,除此之外,它和普通方法没有什么区别。匿名方法使用时是通过delegate修饰。匿名方法声明的一般形式如下:委托名委托实例对象=delegate(参数1,参数2,…){方法体;};7.4Lambda表达式Lambda表达式本质上是匿名方法,它可以减少代码量,使代码更加简洁、优美。方法需要依附于委托,故Lambda表达式的书写也要遵从委托的“规定”。其一般形式如下:(参数列表)=>{语句序列}课后练习1.练习本章所有示例代码。2.多播委托和单播委托的区别是什么?3.事件的使用方法和委托有什么关系?4.有参类型的事件和无参类型的事件有什么区别?为什么?《C#程序设计》教案第8章课时内容异常处理授课日期授课时长课时教学目标思政目标:☞认真修改并测试程序代码,树立新时期下的程序员精神☞加强学生的动手能力,培养学生实事求是、严谨的学习态度技能要求:☞熟练掌握程序的异常处理☞掌握程序调试实践目标:☞根据所学的示例,能够自己进行程序调试☞熟练掌握调试方法教学设计教学思路:通过讲解,学习程序调试、异常的概念、异常处理的三种形式等内容。教学手段:通过课件展示、编程练习、课后习题学习程序调试和异常处理。教学环节教学内容讨论问题1.什么是程序调试?2.异常处理有几种形式?内容大纲8.1程序调试程序调试可以发现并调整程序在运行过程中出现的异常,从而使程序进一步得到完善,这是编写程序必须的环节。没有足够经验,很难充分利用程序调试的工具。调试中主要用到的命令有:开始调试、开始执行(不调试)。8.2异常处理的形式8.2.1异常的概念异常是指异常事件(exceptionalevent),是应用程序在执行期间发生的错误,以及其他意外的行为。导致异常的原因多种多样,常见的有:文件找不到、文件操作权限不足、网络无法连通、数组越界、算术除以0等。8.2.2异常处理的三种形式C#用4个关键字try、
throw、catch
和finally管理异常处理,首先需要使用try预测可能出现异常的语句,然后在catch中捕获异常并对异常进行处理,不管异常发生与否,都会执行finally里面的语句,而throw用于人为抛出异常,把异常返回给程序。1.使用
try-catch
语句来捕获异常2.使用throw语句抛出异常3.使用finally语句课后练习1.练习本章所有示例代码。2.如何添加断点、取消断点?断点有什么用处?3.常用的内置异常类之间的关系是什么?4.如何使用try-catch语句捕获异常?《C#程序设计》教案第9章课时内容常用类授课日期授课时长课时教学目标思政目标:☞理解课程中对常用类的讲解,树立理论联系实际的意识☞通过面向对象程序设计方法的学习,提高学生的抽象思维能力技能要求:☞掌握面向对象程序设计的基本概念☞了解常用类概念及用法☞理解并掌握抽象类的用法☞掌握接口与抽象类的关系☞了解匿名类实践目标:☞根据示例,对所学的概念进行验证☞熟练应用面向对象方法实现编程设计教学设计教学思路:通过讲解,学习抽象类、接口、匿名类、结构、Object类等内容。教学手段:通过课件展示、编程练习、课后习题学习抽象类和接口的关系、匿名类的声明和结构的定义。教学环节教学内容讨论问题1.什么是抽象类?2.什么是接口?3.接口和抽象类有什么关系?内容大纲9.1抽象类抽象类是只表达一个抽象的概念,是作为其派生类的一个基类的类。抽象类使用abstract修饰,抽象类不能被实例化,即抽象类没有实例存在。9.2接口接口,可理解为抽象类的一种特例。在接口中,所有的方法都必须是抽象的,而且接口没有实现代码,只有声明语句。9.3匿名类没有名字的类就是匿名类型。9.4结构结构类型是一种可封装数据和相关功能的值类型
,它与类具有很多相同或者类似特征。结构与类的不同之处主要有:结构属于值类型,声明它使用的是关键字struct;而类属于引用类型,声明它使用的是关键字class。9.5Object类9.5.1Object类的概念Object类是.NET中所有类的最终基类,也是类型层次结构的根,即所有的引用类型和值类型都直接或间接地继承自Object。这就决定了Object类型可以引用任何类型的对象和任何类型的数组。9.5.2相等问题1.==应用于类和简单值类型2.相等性判断方法9.5.3GetType()方法与ToString()方法GetType()方法用于获取当前实例的类型,返回值为Type;该方法返回的是对象的真实类型,而非声明类型;该方法不含任何参数,是非静态方法。与此相关的方法还有GetTypeCode()方法,GetTypeCode()并非来自object,所以有些类并不具备该方法,如自定义的类和结构。ToString()方法是一种虚方法,作用是将其它类型以字符串类型表示。课后练习1.练习本章所有示例代码。2.什么是抽象类?抽象方法和抽象类有什么关系?3.如何用一个类实现多个接口?4.如何判断两个数值相等?不同方法之间的区别是什么?《C#程序设计》教案第10章课时内容字符串授课日期授课时长课时教学目标思政目标:☞学习字符串,明白编程中重要细节,引导学生深入思考☞通过实例,引导学生对知识融会贯通,培养学生创新和实践能力技能要求:☞了解字符串概念及其构造方式,掌握针对字符串操作的常用方法☞掌握StringBuilder对象与String对象的区别,掌握其属性与方法☞了解计算机编码实践目标:☞通过动手操作,能够深入理解字符串与数组之间的转化☞理解示例,能够充分理解字符串相关函数☞能够实现各种编码之间的转换教学设计教学思路:通过讲解,学习字符串及其构造、字符转义、String类的方法、字符串对象的方法、StringBuilder对象的属性、ASCII码的获取等内容。教学手段:通过课件展示、编程练习、课后习题学习字符串、String类的方法、StringBuilder、编码。教学环节教学内容讨论问题1.什么是字符串?2.什么是字符转义?3.String类的方法有哪些?4.各种编码之间如何转换?内容大纲10.1字符串的基本特征10.1.1字符串及其构造10.1.2字符转义在字符串的使用过程中,常常会涉及到@符号和转义符\的使用。10.2String类的方法10.2.1String类的方法1.string.Compare()2.string.Concat()3.string.Copy()4.string.Format()5.string.Join()10.2.2字符串对象的方法1.Clone()2.CompareTo()3.Contains()4.CopyTo()5.EndsWith()和StartsWith()6.Equals()7.IndexOf()8.IndexOfAny()9.Insert()10.PadLeft()和PadRight()11.Remove()12.Replace()13.Split()14.Substring()15.ToCharArray()16.ToLower()和ToUpper()17.Trim()10.3StringBuilder1.StringBuilder对象的属性2.StringBuilder对象的方法10.4编码计算机中所有数据的存储和运算都使用二进制数进行表示,一个英文字符和二进制位之间有对应关系。数据在进行使用时,为避免混乱,都需要遵循相同的编码规则。最广泛使用的一种字符编码是ASCII码。1.ASCII码的获取2.GB2312编码的获取3.Unicode编码的获取课后练习1.练习本章所有示例代码。2.简述String类中方法的区别。3.字符串是数据类型吗?为什么?4.@符号和转义符\分别代表什么?有什么不一样?5.如何获取ASCII码?6.不同编码之间的字节是否相同?《C#程序设计》教案第11章课时内容集合授课日期授课时长课时教学目标思政目标:☞理解程序中集合的必要性,方便以后深入地学习☞明白基础的重要性,基础扎实能减少编程错误技能要求:☞掌握集合的基本概念和用法,理解泛型类☞了解常用的普通集合类和泛型集合类实践目标:☞能够正确区分普通集合和泛型集合☞熟练地对集合进行操作☞能够对数组有进一步的认识教学设计教学思路:通过讲解,学习ArrayList、Queue、Stack、Hashtable、SortedList、泛型、List类型、HashSet类型等内容。教学手段:通过课件展示、编程练习、课后习题学习常用普通集合、泛型、泛型集合。教学环节教学内容讨论问题1.常用普通集合有哪些?2.如何区分普通集合和泛型集合?3.Hashtable和SortedList有什么相同之处?内容大纲11.1常用普通集合11.1.1ArrayListArrayList与数组类似,但与数组相比,ArrayList有其独特的优势。Arraylist优势在于:没有固定的大小,可以根据需求增长,其默认大小为0个元素(注:不同的环境下有可能不一样),当存储容量不足时,按照2的幂次规律扩容。11.1.2QueueQueue(队列)具备如下特点:(1)对象按照先进先出,先来先服务的原则。(2)当队列缓冲区空间不足时,按2的幂次增长规律创建一个新的缓冲区,并将现有对象复制到新缓冲区中。11.1.3StackStack(栈)与Queue(队列)比较类似,其特性是:元素遵从后进先出的原则,即最后插入的对象位于栈的顶端,将会最先出来。11.1.4HashtableHashtable(哈希表)是一种使用频率很高的数据结构,它是由一对(key,value)类型的元素组成的集合,每个元素都是一个键值对,元素类型为DictionaryEntry。其所有元素的key必须唯一,key→value是一对一的映射,即根据key就可以在集合中找到对应的元素,故从Hashtable中读取值的速度很快。11.1.5SortedListSortedList与Hashtable类似,表示键值对的集合,也可以使用键来访问。不同点在于SortedList集合的元素根据对应的键进行了排序,可以对集合中的元素使用整型数值进行索引,类似于数组,所以对于SortedList,具备键和索引两种访问方式。11.2泛型11.2.1概述泛型是.NET2.0开始引入的一个新功能,泛型将类型参数的概念引入到.NET中。可以利用泛型创建特殊的类、方法、结构、接口、委托等;可以让类、方法、结构、接口、委托等按它们存储和操作的数据类型进行参数化;可以提供更强的编译时类型检查,减少数据类型之间的显式转换,减少装箱操作和运行时的类型检查。11.2.2泛型的示例11.2.3泛型的方法泛型方法分为两种:一种是存在于泛型类、泛型结构等中的泛型方法;另一种则是存在于非泛型类中的泛型方法。泛型方法使用频率很高。11.3泛型集合在使用集合时,可以把任何东西都往里面放,如int型数据、double型数据、DateTime型数据,甚至数组、对象等都可以放进去。集合这一点却也带来了一系列的问题,最主要的问题就是该过程中存在装箱和拆箱操作,效率低下,更重要的是,它有可能导致不安全问题。11.3.1List类型使用泛型List类型(即List<T>),可以创建兼具泛型优势和ArrayList优势的泛型集合。List类型明确,无需强制转换,可以通过定义时限定数据类型,使得该集合既拥有ArrayList的功能,同时还具有类型安全的特性。另外,使用List.Enumerator结构可以枚举泛型集合中的元素。11.3.2HashSet类型HashSet类型(HashSet<T>)是一个泛型集合,它的元素具有唯一性。其容量也具有自动扩充的特性,当元素个数增加时,其容量自行扩充至与元素个数相等。其最重要的属性就是Count属性,可以通过该属性获取集合中的元素个数。课后练习1.练习本章所有示例代码。2.仿照Hashtable示例,查阅资料练习SortedList方法的使用。3.请问ArrayList集合与数组有什么不同?各自的使用条件是什么?4.队列内容发生变化,需要重新获取枚举器吗?5.栈和队列的区别是什么?它们处理元素的顺序有什么不同?6.泛型使用时出错,能在VS中显示出来吗?《C#程序设计》教案第12章课时内容窗体授课日期授课时长课时教学目标思政目标:☞学习WinForm窗体,认识计算机与“人”的关系,理论联系实际☞激发学生学习热情,培养人工智能意识和思维方式技能要求:☞了解WinForm开发基本构成☞掌握窗体的常用属性☞掌握控件的常用操作及其键盘和鼠标事件☞了解基本控件、常用组件及菜单的相关控制操作实践目标:☞通过练习,能够熟练使用基本控件进行简单编程☞能够充分掌握窗体事件的处理教学设计教学思路:通过讲解,学习窗体的概念、窗体的常用属性、控件概念、控件的操作、基本控件、键盘事件、鼠标事件、Timer组件、ImageList组件等内容。教学手段:通过课件展示、编程练习、课后习题学习窗体、控件、键盘与鼠标事件、常用组件。教学环节教学内容讨论问题1.怎样生成窗体?2.窗体和控件有什么不同?3.什么是鼠标键盘事件?4.常用组件有哪些?内容大纲12.1窗体的基本特征12.1.1窗体的概念窗体是WinForm应用开发中最基本的一个容器控件,和其他很多普通控件一样,都继承于控件基类System.Windows.Forms.Control,故所有的控件都具有一些共有的特性。在VS中新建一个WinForm项目时,默认会有一个窗体。由于窗体是一个特殊的控件,窗体控件所具有的很多属性、事件也是其他控件所具备的。12.1.2窗体的常用属性12.1.3窗体的常用事件12.2控件12.2.1控件概念控件是用户与程序交互以输入或操作数据的对象,是一种可重用的软件组件。由于每个控件实质上都是一个类,而这些类大多数都继承于一个共同的控件基类,即System.Windows.Forms.Control,故所有的控件都具有一些共同有的特性,不仅如此,控件的使用也面临一些共同的操作。12.2.2控件的操作1.控件添加2.控件调整3.控件分层4.控件定位5.控件大小6.控件锚定——Anchor7.控件停靠8.控件的Tab键顺序12.2.3基本控件1.Label控件2.RadioButton控件3.CheckBox控件4.TextBox控件5.ListBox控件6.ComboBox控件12.3键盘与鼠标事件12.3.1键盘事件键盘事件是WinForm开发中一类常见的事件。键盘事件在用户按下键盘上的键时发生,分为两类:第一类是KeyPress事件,当按下的键表示的是一个ASCII字符时就会触发这类事件,可通过它的KeyPressEventArgs类型参数的属性KeyChar来确定按下键的ASCII码,但是使用KeyPress事件无法判断是否按下了控制键(例如Shift,Alt和Ctrl键)。第二类是KeyUp或KeyDown事件,该类事件有一个KeyEventArgs类型的参数,通过该参数可以测试是否按下了一些控制键、功能键等特殊按键信息。12.3.2鼠标事件鼠标事件是WinForm开发中最常见的一类事件,利用这些事件可以方便地进行与鼠标有关的编程处理。12.4常用组件12.4.1Timer组件Timer组件由Timer类封装,主要用于计时,并以指定的间隔循环往复的执行某个动作,该控件在运行时不可见。通过计时处理可以实现各种复杂的动作,例如动画特效等。12.4.2ImageList组件ImageList组件是一个专门用来给其他控件提供图片的组件,其本身在运行时并没有可视化界面。课后练习1.练习本章所有示例代码。2.窗体有哪些常用属性?分别表示什么含义?3.窗体是生命周期是怎样的?请画图说明。4.常用组件有哪些?请说明它们各自的含义。《C#程序设计》教案第13章课时内容菜单与高级组件授课日期授课时长课时教学目标思政目标:☞学习菜单与高级组件,认识计算机与“人”的关系,学会理论联系实际☞激发学生学习热情,培养责任意识,自主学习技能要求:☞了解菜单与高级组件☞掌握高级组件常用属性☞了解高级组件的相关控制操作实践目标:☞通过练习,能够熟练使用Winform基本控件进行简单编程☞能够充分掌握菜单相关功能教学设计教学思路:通过讲解,学习菜单概念、MenuStrip、ToolStrip、StatusStrip、OpenFileDialog、FontDialog、FolderBrowserDialog、RichTextBox等内容。教学手段:通过课件展示、编程练习、课后习题学习菜单、对话框、高级组件、COM组件、MDI。教学环节教学内容讨论问题1.菜单有什么用处?2.对话框有什么用处?内容大纲13.1菜单13.1.1菜单概念13.1.2MenuStrip菜单控制即控制每个菜单项,菜单项的主要事件是Click,其属性较多,具体如下所示。(1)Text:获取或设置一个值,通过该值指示菜单项标题。当使用Text属性为菜单项指定标题时,还可以在字符前加一个&号来指定热键。例如,若要将File中的F指定为热键,应将菜单项的标题指定为“&File”;若为中文菜单项,则可以设置为“文件(&F)”。(2)Checked:获取或设置一个值,该值指示复选标记是否出现在菜单项文本的旁边。如果要放置选中标记在菜单项文本的旁边,属性值为true,否则属性值为false。该属性默认值为false。(3)Enabled:获取或设置一个值,通过该值指示菜单项是否可用。值为true时表示可用,值为false表示当前禁止使用。(4)ShortcutKeys:获取或设置一个值,该值指示与菜单项相关联的快捷键。(5)ShowShortcutKeys:获取或设置一个值,该值指示与菜单项关联的快捷键是否在菜单项标题的旁边显示。如果快捷键在菜单项标题的旁边显示,该属性为true,如果不显示快捷键,该属性值为false,默认值为true。13.1.3ToolStrip该控件由ToolStrip封装,是容器控件,通常出现在窗体的顶部,可以将一些常用的控件作为子项放在工具栏中,通过各个子项与应用程序联系。13.1.4StatusStripStatusStrip控件由StatusStrip类封装。状态栏一般位于窗体的底部,用于显示系统的一些状态,比如当前程序状态、当前鼠标位置处控件的功能描述、日期时间等。在状态栏中,可以包含文本、图像、下拉框、按钮等子项。13.2对话框13.2.1OpenFileDialog1.OpenFileDialog控件的常用属性2.OpenFileDialog控件的常用方法13.2.2FontDialogFontDialog控件又称为“字体”对话框,主要用来打开Windows中标准的“字体”对话框。“字体”对话框的作用是显示当前安装在系统中的字体列表,供用户进行选择。13.2.3FolderBrowserDialogFolderBrowserDialog控件即“目录选择”对话框,用于选择一个目录,而不是文件。13.3高级组件13.3.1RichTextBox1.RichTextBox控件的属性2.TextBox控件的常用方法13.3.2ViewView控件(视图控件)用TreeView类封装,用于显示层次结构的信息,例如磁盘目录、文件和数据库结构等。13.4COM组件COM组件中,ShockwaveFlashObject用于Flash动画的播放,而WindowsMediaPlayer则用于常见多媒体影音格式的播放。13.4.1ShockwaveFlashObject13.4.2WindowsMediaPlayer该组件的使用方式类似ShockwaveFlashObject,只需勾选WindowsMediaPlayer即可13.5MDI1.MDI设计中的相关属性2.菜单合并课后练习1.编写属于自己的记事本。2.简述菜单和对话框的不同之处。3.高级组件有哪些?分别表示什么含义?4.COM组件包含了哪些内容?功能有什么不同?《C#程序设计》教案第14章课时内容文件操作授课日期授课时长课时教学目标思政目标:☞掌握文件系统的知识,主动获取、查询、检索信息,培养主观能动性☞明白文件保护的重要性,重视上网安全技能要求:☞了解文件系统相关概念和常用操作☞了解文件处理流的相关概念及常用类实践目标:☞能够学会创建文件,能够对文件进行处理☞学会熟练运用Stream类对文件进行操作教学设计教学思路:通过讲解,学习驱动器访问、目录访问、文件访问、FileStream类、StreamReader与StreamWriter、BinaryReader与BinaryWriter等内容。教学手段:通过课件展示、编程练习、课后习题学习访问、路径、文件处理流。教学环节教学内容讨论问题1.如何实现驱动器访问?2.字节流的转换是怎么实现的?内容大纲14.1访问14.1.1驱动器访问表14-1驱动器访问属性说明AvailableFreeSpace只读属性,用于确定驱动器上的可用空间大小DriveTypeCDRom:表示CD-ROM驱动器Fixed:表示一个不可随意移除的固定硬盘Network:表示一个网络驱动器NoRootDirectory:表示一个没有根目录的驱动器Ram:表示一个RAM驱动器Removable:表示一个可移除的驱动器Unknown:表示一个未知的驱动器类型DriveFormat只读属性,用于确定驱动器上的文件系统格式类型,如NTFS、FAT和FAT32Name只读属性,用于获得驱动器的名称TotalFreeSpace只读属性,用于确定磁盘上的总可用空间量,它没有考虑用户的空间配额TotalSize用于确定驱动器上的总空间量14.1.2目录访问目录的访问需要借助于Directory类和DirectoryInfo类来实现。Directory类的常用方法如表14-2所示。表14-2Directory类的常用方法方法说明CreateDirectory()创建一个新目录Delete()删除一个目录Exists()确定目录是否存在。如果将目录路径传递给该方法,它会返回一个bool值以表明目录是否存在。这是Directory类中最常用的方法,并且通常和if语句配合使用GetFiles()获取目录中的文件的列表GetDirectories()获取目录中的子目录的列表GetLogicalDrives()获取本地计算机上的逻辑驱动器的列表GetParent()获取指定目录的父目录Move()将目录移动到另一个位置表14-3DirectoryInfo类的常用方法属性说明Create()创建一个目录CreateSubDirectory()为当前目录创建子目录GetDirectories()获取当前目录中的子目录的列表GetFiles()获取当前目录中的文件的列表MoveTo()将目录移动到另一个位置Delete()删除一个目录14.1.3文件访问文件的访问需要借助于File类和FileInfo类来实现。File类的常用方法如表14-4所示。表14-4File类的常用方法方法含义Create()创建一个文件Copy()复制一个文件Delete()删除一个文件Exists()确定文件是否存在。需要将文件路径传递给该方法,然后它将返回一个bool值以表明文件是否存在。这是File类中最常用的方法,并且通常和if语句一起使用Move()移动一个文件Replace()用另一个文件替换或改写某个文件AppendText()创建StreamWriter类,将该类配置为在指定的文件中追加文本Open()以FileStream打开指定的文件,然后,可以使用FileStream类的对象将文本写入该文件ReadAllText()打开文件,读取文件中的所有文本,将读取的文本存储到字符串变量中,然后关闭该文件WriteAllText()创建一个新文件或改写一个现有文件,将字符串变量的内容写入文件,然后关闭该文件ReadAllLines()打开文件,读取文件中的所有文本,将读取的文本存储到字符串数组中,然后关闭该文件WriteAllLines()创建一个新文件或改写一个现有文件,将字符串数组的内容写入文件,然后关闭该文件表14-5FileInfo类的常用方法方法说明Create()创建一个文件AppendText()创建StreamWriter类以向文件追加文本Open()打开一个文件CopyTo()将文件复制到一个新文件并且可以选择改写任何现有文件Delete()删除一个文件MoveTo()将文件移动到一个新目录。如果新目录中已经存在同名文件,则将引发异常Replace()用当前FileInfo指代的文件内容替换作为参数传入的文件14.2路径路径的操作处理是借助于Path类来完成的,其常用属性和方法分别如表14-6和表14-7所示。表14-6Path类的常用属性属性说明PathSeparator表示当多个路径字符串连接在一起时,用于分割每个文件或目录路径的字符;通常,当为搜索指定了多个路径时,使用该属性;Windows使用的默认字符为分号(;)InvalidPathChars表示一个数组,它包含不能用于路径字符串的字符DirectorySeparatorChar表示用于分隔路径字符串的目录段的字符;Windows使用的默认字符为反斜杠(\)VolumeSeparatorChar表示用于将驱动器盘符与字符串路径的其余部分进行分隔的字符;Windows使用的默认字符为冒号(:)表14-7Path类的常用方法方法说明GetDirectoryName()从包括驱动器盘符或文件名的路径中检索目录段GetExtension()获取某个指定文件路径中的文件的扩展名。例如,可以使用该方法得到要检索的文件的类型,从而可以使用正确的应用程序将其打开GetFileName()获取某个指定文件路径中的文件名,包括扩展名GetFullPath()获取指定文件路径的绝对路径,包括驱动器盘符和目录段。如果仅向本方法传递文件名,则将在返回的文件名之前加上当前目录的驱动器盘符和目录段GetRandomFileName()获取一个强加密的随机名称,可把它用于目录或文件的命名GetTempPath()获取本地操作系统用于存储临时文件的目录路径14.3文件处理流Stream类支持在同一个流中既可以进行同步读写,也可以进行异步读写。该类是一个抽象类,它提供了BeginRead()、BeginWrite()、EndRead()、EndWrite()、Read()、Write()、Seek()等成员方法,协同完成对流的读写操作。14.3.1FileStreamFileStream类可以完成文件的读写操作,它是一个比较“底层”的流类,故可由BinaryReader、StreamReader等进行“包装”后,再完成对文件的操作。14.3.2StreamReader与StreamWriter14.3.3BinaryReader与BinaryWrite
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《中国行政管理史》课程教学大纲
- 营销创新教学课件第十章神经营销
- 2024年伐木个人承包合同范本
- 2024年承接钻杆维修合同范本大全
- 肝癌病人的护理课件
- 湖南省三湘名校联盟2024-2025学年高三上学期11月期中英语试题(含解析无听力 音频有听力原文)
- 中医药活动课件
- 医疗能源图示
- 化学治疗给药的准备
- 2024购房合同能否更名以及如何更名专业版范文
- 全国仿真职业技能竞赛考试题库及答案
- 新视野大学英语(第四版)读写教程1(思政智慧版) 课件 Unit 4 Social media matters Section A
- 小学一年级上册 综合实践教学课件
- 经营分析决策支持解决方案
- 世界主要工业区
- 《中小学公共安全教育读本》教案
- 自然资源资产负债表编制制度(试行)
- (完整版)钢结构工程施工质量验收规范
- 一种半导体激光器多模光纤耦合技术
- 关于格宾石笼的设计计算的探讨
- 国检小学美术功能室记录表12页
评论
0/150
提交评论