ImageVerifierCode 换一换
格式:PPT , 页数:16 ,大小:175.50KB ,
文档编号:6094175      下载积分:15 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-6094175.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(momomo)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(《C Sharp 3.0从基础到项目实战》课件第13章C# 3.0中新增功能.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

《C Sharp 3.0从基础到项目实战》课件第13章C# 3.0中新增功能.ppt

1、 13.1 隐式类型的局部变量和数组隐式类型的局部变量和数组 13.2 对象和集合初始值设定项对象和集合初始值设定项 13.3 匿名类型匿名类型 13.4 扩展方法扩展方法 13.5 Lambda表达式表达式 13.6 小结小结13.1 隐式类型的局部变量和数组13.1.1 隐式类型的局部变量隐式类型的局部变量在在C#3.0中,可以使用中,可以使用var关键字声明变量,变量关键字声明变量,变量的类型由编译器智能推断。编译器推断的依据即的类型由编译器智能推断。编译器推断的依据即初始化语句右边的表达式,例如下列代码。初始化语句右边的表达式,例如下列代码。var a=100;编译器会根据后面的表达式

2、推断出编译器会根据后面的表达式推断出a的类型为的类型为int,即编译器在内部会实现如下相同的定义。即编译器在内部会实现如下相同的定义。int a=100;推断的类型可以是内置类型、匿名类型或用户自推断的类型可以是内置类型、匿名类型或用户自定义类型。定义类型。下列代码演示隐式类型的应用。下列代码演示隐式类型的应用。var myBool=false;/编译器推断为布尔型(编译器推断为布尔型(bool)var x=123.456;/编译器推断为小数型(编译器推断为小数型(decimal)var y=2.7E+23;/编译器推断为双精度(编译器推断为双精度(double)var name=“Jane”

3、;/编译器推断为字符串(编译器推断为字符串(string)13.1.1 隐式类型的局部变量注意:注意:在使用在使用var声明隐式变量时,必须同时初始化声明隐式变量时,必须同时初始化变量,并且不能将变量初始为变量,并且不能将变量初始为Null、方法组或、方法组或匿名函数。匿名函数。当声明的变量被推断出以后,变量的类型就不当声明的变量被推断出以后,变量的类型就不能改变了,例如下列代码。能改变了,例如下列代码。var a=100;a=100.10;此时就会出现编译错误:无法将类型此时就会出现编译错误:无法将类型“double”隐式转换为隐式转换为“int”。13.1.1 隐式类型的局部变量不能将不能

4、将var用于类范围领域,即不能用作类的字段。用于类范围领域,即不能用作类的字段。本节题目本节题目“隐式类型的局部变量隐式类型的局部变量”也提示了隐式也提示了隐式类型只能用作局部变量。类型只能用作局部变量。由由var声明的变量不能用在初始化表达式中,会造声明的变量不能用在初始化表达式中,会造成编译错误,例如下列代码。成编译错误,例如下列代码。var a=(a=100);不能在一个语句中初始化多个隐式类型变量,系不能在一个语句中初始化多个隐式类型变量,系统会出现错误提示统会出现错误提示“隐式类型的局部变量不能有隐式类型的局部变量不能有多个声明符多个声明符”,例如下列代码。,例如下列代码。var a

5、=100,b=200;如果范围中有一个名为如果范围中有一个名为var的类型,则的类型,则var将解析将解析为该类型名称,而不是作为隐式类型局部变量的为该类型名称,而不是作为隐式类型局部变量的一部分,例如下列代码。一部分,例如下列代码。Int var=100;13.1.2 隐式类型的数组隐式类型数组的原理与隐式类型局部隐式类型数组的原理与隐式类型局部变量的原理相同,也是通过从数组的变量的原理相同,也是通过从数组的初始值中推断数组类型,例如下列代初始值中推断数组类型,例如下列代码。码。var a=new 1,2,3;var y=new Hello,null,world;编译器会推断出编译器会推断出

6、a和和y的数据类型,的数据类型,a是是int型数组,型数组,b是是string型数组。型数组。13.1.2 隐式类型的数组 注意:注意:隐式类型是不需要加隐式类型是不需要加“”的,即不需要的,即不需要var a=new1,2,3。对于交错数组,就如同使用一维数组那样使对于交错数组,就如同使用一维数组那样使用用new初始化。初始化。隐式类型的数组不支持多维数组。隐式类型的数组不支持多维数组。13.2 对象和集合初始值设定项 在在C#中,使用对象初始值设定项,可以在创建对象时向中,使用对象初始值设定项,可以在创建对象时向对象的任何可访问字段或属性分配值,而无需显式调用构对象的任何可访问字段或属性分

7、配值,而无需显式调用构造函数,例如可以定义一个造函数,例如可以定义一个Person类。类。class Person public string LastNameset;get;public string FristName set;get;public int Age set;get;可以使用它的公共字段或属性初始化一个可以使用它的公共字段或属性初始化一个person类的对类的对象象Doctor,代码如下。,代码如下。Person doctor=new Person()FristName=Jack,Lastname=lee,Age=49;当然也可以不提供全面的字段和属性初始化一个对象,代当然也

8、可以不提供全面的字段和属性初始化一个对象,代码如下。码如下。Person doctor=new Person()FristName=Jack,Lastname=lee;13.2 对象和集合初始值设定项 下列代码采用了自动实现的属性。下列代码采用了自动实现的属性。class Person1 private string name;public string Name get return name;set name=value;可简化成:可简化成:public string Nameget;set;13.2 对象和集合初始值设定项使用集合初始值设定项,可以在初始化一个实使用集合初始值设定项,可以

9、在初始化一个实现了现了IEnumerable的集合类时指定一个或多个的集合类时指定一个或多个元素初始值设定项。元素初始值设定项。示例:示例:List li=new List 0,1,2,3,4,5,6,7,8,9;List li1=new List 1,2,4/5,7*2/5;List p=new List new Person()LastName=Smith,FirstName=Tom,Age=8,new Person()LastName=Bush,FirstName=Mary,Age=2,;13.3 匿名类型 匿名类型提供了一种便捷的方法,能够将匿名类型提供了一种便捷的方法,能够将一组只读

10、属性封装到单个对象中,而无需一组只读属性封装到单个对象中,而无需首先显式定义一个类型。其实质就是该对首先显式定义一个类型。其实质就是该对象的类型名由编译器生成,并且不在代码象的类型名由编译器生成,并且不在代码中使用。中使用。示例:示例:var doctor=new FristName=Jack,Lastname=lee,Age=48;13.3 匿名类型 匿名类型的优势在于,可以将一组只读属匿名类型的优势在于,可以将一组只读属性封装在单个对象中,而不需要首先定义性封装在单个对象中,而不需要首先定义类。其中,类的名称将由编译器内部生成,类。其中,类的名称将由编译器内部生成,类在源代码中既不会显示,

11、也不能使用。类在源代码中既不会显示,也不能使用。匿名类型是由一个或者多个公共属性组成匿名类型是由一个或者多个公共属性组成的类,它不可以包含任何其他类成员,例的类,它不可以包含任何其他类成员,例如方法、事件等。最常见的操作是使用其如方法、事件等。最常见的操作是使用其他类型的一些属性初始化匿名类型。他类型的一些属性初始化匿名类型。13.4 扩展方法 C#中引入了扩展方法,它允许在不了解中引入了扩展方法,它允许在不了解现有的类源代码的情况下,向其中添加方现有的类源代码的情况下,向其中添加方法。法。步骤:步骤:必须添加一个静态类,用来包含要添加的扩必须添加一个静态类,用来包含要添加的扩展方法。展方法。

12、要添加的扩展方法必须为静态方法。要添加的扩展方法必须为静态方法。方法参数列表中第一个参数必须以方法参数列表中第一个参数必须以this开始,开始,然后是要扩展的类型名称和参数名。然后是要扩展的类型名称和参数名。13.4 扩展方法 示例:示例:static class PersonExtension public static void Speak(this Person person,string words)Console.WriteLine(words);13.5 Lambda表达式C#3.0为匿名方法提供了一个新的语法,即为匿名方法提供了一个新的语法,即Lambda表达式,又称为表达式,又

13、称为表达式,它可以表达式,它可以包含表达式和语句,并且可用于创建委托包含表达式和语句,并且可用于创建委托或或LINQ表达式。表达式。通过在表达式运算符通过在表达式运算符“=”(读作(读作goes to)左边输入参数(如果存在参数),表达式左边输入参数(如果存在参数),表达式运算符右边输入表达式或者语句块,可以运算符右边输入表达式或者语句块,可以快速而又简洁地构建匿名方法。快速而又简洁地构建匿名方法。Lambda表表达式主要应用于委托和达式主要应用于委托和LINQ。13.5 Lambda表达式示例:示例:下列代码是一个下列代码是一个Lambda表达式应用于委托表达式应用于委托的简单示例。的简单示

14、例。delegate int del(int i);del myDelegate=x=x*x;int j=myDelegate(5);13.6 小结本章主要介绍了本章主要介绍了C#中新增加的功能。这些功能极中新增加的功能。这些功能极大地丰富了大地丰富了C#语言特性,使其更加智能化,可以语言特性,使其更加智能化,可以减轻开发人员的编码负担,使开发人员能够更加减轻开发人员的编码负担,使开发人员能够更加灵活地编写程序。灵活地编写程序。这些新功能的核心还是这些新功能的核心还是LINQ,无论是隐式类型还,无论是隐式类型还是匿名类型,它们的出现都是为是匿名类型,它们的出现都是为LINQ做好铺垫,做好铺垫,以提高以提高LINQ查询的方便、快捷等优势。在使用这查询的方便、快捷等优势。在使用这些新功能时尤其需要注意,特别是隐式类型和匿些新功能时尤其需要注意,特别是隐式类型和匿名类型,它们在为开发人员的编码提供帮助的同名类型,它们在为开发人员的编码提供帮助的同时,也增加了阅读和维护源代码的难度。所以,时,也增加了阅读和维护源代码的难度。所以,建议在编写程序时应尽量选择严谨的类型,有利建议在编写程序时应尽量选择严谨的类型,有利于节省系统开销,便于系统维护。同时,选择严于节省系统开销,便于系统维护。同时,选择严谨的数据类型是一种良好的编程风格。谨的数据类型是一种良好的编程风格。

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|