《WinForm程序设计及实践》课件第10章 .NET4.0新特性.ppt

上传人(卖家):kld 文档编号:8228681 上传时间:2025-01-15 格式:PPT 页数:22 大小:610KB
下载 相关 举报
《WinForm程序设计及实践》课件第10章 .NET4.0新特性.ppt_第1页
第1页 / 共22页
《WinForm程序设计及实践》课件第10章 .NET4.0新特性.ppt_第2页
第2页 / 共22页
《WinForm程序设计及实践》课件第10章 .NET4.0新特性.ppt_第3页
第3页 / 共22页
《WinForm程序设计及实践》课件第10章 .NET4.0新特性.ppt_第4页
第4页 / 共22页
《WinForm程序设计及实践》课件第10章 .NET4.0新特性.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、-1-掌握推断类型的使用 掌握扩展方法的定义和调用 掌握对象初始化器的使用 掌握匿名类的使用 了解Lambda表达式 掌握使用LINQ查询 新关键词dynamic 可选(或)默认参数 命名参数目标-2-推断类型 C#4.0新增了推断数据类型,可以使用var关键字来声明变量,编译器在编译时会根据初始化数据推断变量的数据类型:int num1=3/使用显式类型声明var num2=3/使用推断类型声明static public void Main()/使用推断类型定义一个整型变量totalvar total=0;/使用推断类型定义一个整型数组avar a=new int 4,18,11,9,8,1

2、0,5;/遍历数组并求和foreach(var e in a)total+=e;Console.WriteLine(e);Console.WriteLine(和:+total);-3-扩展方法-1 扩展方法可以从某个数据类型外部向该类型添加方法。扩展方法可以像普通实例方法那样进行调用。扩展方法的格式:扩展方法的需要注意以下几点:p 扩展方法只能声明在静态类中p 扩展可以继承,对于System.Object的扩展将被所有类继承。p 扩展方法定义中的第一个参数必须以this关键字进行修饰。p 扩展方法只能对方法进行扩展,不支持属性、事件等。例如:访问符 static 返回类型 扩展方法名(this

3、 参数)方法体public static void Print(this string str)Console.WriteLine(String的扩展方法:+str);-4-扩展方法-2 扩展方法还可以带多个参数,例如:调用了此扩展方法:注意:调用扩展方法时,不要为第一个参数赋值,因为第一个参数被绑定到调用该方法的数据类型的实例。public static void PrintAndPunctuate(this string str,string punc)Console.WriteLine(str+punc);example.PrintAndPunctuate(.)-5-对象初始化器-1 对

4、象初始化器提供了一种简单的、对类的对象进行初始化的方式,它可以在单个语句中调用类的构造函数并设置属性的值。示例:Customer cust=new CustomerName=Toni Poe,City=Louisville;Customer cust=new Customer()Name=zhangsan,Addr=new AddressCity=Qingdao,Street=xianggangzhonglu,Age=20;-6-对象初始化器-2对象初始化器还可以嵌套,例如:Customer cust=new Customer()Name=zhangsan,Addr=new Address C

5、ity=Qingdao,Street=xianggangzhonglu ,Age=20 ;-7-匿名类 匿名类可以不对类进行定义而直接创建实例,编译器会根据声明时指定的属性来创建类的定义。匿名类没有名称,它继承Object,包含在声明时所指定的属性。示例:var anonyProduct=New Name=paperclips,Price=1.29;-8-Lambda表达式 Lambda表达式是一种匿名函数,用于计算并返回单个值。示例:调用:x=x+1 /以表达式作为Lambda表达式x=return x+1 /以语句块作为Lambda表达式(x,y)=x*y /多个参数int numbers

6、=new int 12,4,31,22,27,14,6,29;int num2=numbers.Where(n=n20).ToArray();-9-LINQ简介 LINQ(Language Integrated Query)是语言集成查询的简称,是Visual Studio 2010和.NET Framework 4.0中一项突破性的创新。LINQ是一个编程模型,提供统一的方法访问文件、XML、数据库等数据。LINQ有4部分组成:LINQ to Objects、LINQ to SQL、LINQ to DataSet和LINQ to XML。-10-LINQ查询步骤 所有LINQ查询操作都有如下

7、3个步骤:p 获取数据源:指定数据源是数据库、XML还是普通的集合。p 创建查询:根据用户要求和LINQ的查询语法,设置查询语句。p 执行查询:从指定的数据源中找到符合条件的数据。public static void Main()/1.定义int类型的数组(新建数据源)int numbers=new int-12,0,31,22,27,14,6;/2.创建查询 var numQuery=from n in numbers where n 0&n%2=0 select n;/3执行查询foreach(var num in numQuery)Console.WriteLine(num);注意:定义

8、查询后,查询直到需要枚举结果时才被真正执行,这种方式称为“延迟执行(deferred execution)”。-11-LINQ查询关键字 LINQ是一门查询语言,和SQL类似,也是通过一些关键字的组合实现最终的查询。LINQ查询常用的关键字:关键字关键字功能描述功能描述From子句指定数据源或范围变量Where子句指定条件,用来筛选数据源Select子句执行查询后,返回元素所包含的内容Group By子句对查询结果进行分组Order By子句对查询结果进行排序Join子句根据指定条件来连接两个数据源into关键字用于创建一个临时标识符,存放Group、Join或Select子句的结果Let子句

9、用于存储查询表达式中子表达式结果-12-LINQ查询语句必须以From子句开始,后面紧跟要查询的数据源。From子句的语法格式:p element是必需的,这是一个范围变量,用于循环访问集合的元素,必须为可枚举类型。该范围变量用于在查询循环访问collection时,引用collection的每个成员。p collection是必需的。这是引用要查询的集合,必须为可枚举类型。例如:From子句 from element In collectionvar numQuery=from num in numbers-13-Where子句根据指定的条件对数据源中数据进行筛选。Where子句的语法格式:

10、p condition是一个表达式,该表达式的计算结果必须为Boolean值或Boolean值的等效值。如果条件的计算结果为True,则在查询结果中包含该元素;否则从查询结果中排除该元素。例如:Where子句 Where conditionvar numQuery=from num in numbers _where num 0where num%2=0select num查询查询number数组中大于数组中大于0且是偶数的数,此处用两且是偶数的数,此处用两个个Where子句来实现子句来实现 -14-Select子句用于选择数据,指定所返回元素的形式和内容。Select子句的语法格式:例如:注

11、意:LINQ查询语句必须以Select子句或Group子句结束。Select子句 select elementvar londonCusts3=from cust in customers _where cust.City=Londonselect cust-15-Group By子句可以根据元素的一个或多个字段对查询结果中的元素进行分组。Group By子句的语法格式:p listField1、listField2是可选的,用于指明查询变量的一个或多个字段,这些查询变量显式标识要包括在分组结果中的字段。如果未指定任何字段,则查询变量的所有字段都包括在分组结果中。p keyExp1是必需的,这

12、是一个表达式,标识用于确定元素的分组的键。可以指定多个键来形成一个组合键。p keyExp2是可选的,是一个或多个附加键,与keyExp1组合在一起,创建一个组合键。p aggregateList是必需的,是一个或多个表达式,标识如何对组进行聚合。若要为分组结果标识一个成员名称,可以使用Group关键字。例如:Group By子句 group listField1,listField2.by keyExp1,keyExp2.var studentsByYear=from student in studentsgroup student by student.Yearforeach(var ye

13、arGroup in studentsByYear)Console.WriteLine(Year:+yearGroup.year)foreach(var student in yearGroup)Console.WriteLine(Name:+student.Name)-16-Order By子句可以根据元素的一个或多个字段对查询结果中的元素进行排序。Order By子句的语法格式:p orderExp1是必需的,这是当前查询结果中的一个或多个字段,用于标识对返回值进行排序的方式,字段名称必须以逗号(,)分隔。p Ascending或Descending关键字指定对每个字段进行升序或降序排序。

14、如果未指定Ascending和Descending关键字,则默认排序顺序为升序。p 排序字段的优先级从左到右依次降低。例如:Order By子句orderby orderExp1 Ascending|Descending ,orderExp2.var londonCusts5=from cust in customerswhere cust.City=Londonorderby cust.Name Ascendingselect new Name=cust.Name,Phone=cust.Phone-17-在.NET4.0中,dynamic关键词是一个很重要的特性,用它可以创建动态对象并在运行

15、时再决定它的类型例如:dynamic新关键词dynamic dyn=1;Console.WriteLine(dyn.GetType();dyn=1.234;Console.WriteLine(dyn.GetType();dyn=hollowrod;Console.WriteLine(dyn.GetType();-18-可选或默认参数 在.NET4.0中,可以在定义方法的时候为参数指定一个默认值。调用方法的时候可以像平时那样传入参数,也可以直接跳过不传入参数,这样就会使用默认值传到方法里:public class DefautParam public static void Main(strin

16、g args)TestMethod(3);public static void TestMethod(int id,string name=张三)Console.WriteLine(id:0,name:1,id,name);-19-命名参数 在之前版本的C#中,方法定义的参数必须与方法调用时参数顺序一致,而现在,这个规矩可以被打破了,可以随便什么顺序传入,这在一定程度上提高了代码的可读性public class NameingParamDemo public static void Main(string args)TestMethod(str:李四);public static void T

17、estMethod(int id=4,string str=张三)Console.WriteLine(id:0,name:1,id,str);-20-推断数据类型允许声明变量时不使用As子句显式声明类型,而是由编译器通过初始化表达式的类型来推断出变量的类型 使用扩展方法可以从某个数据类型外部向该类型添加方法,扩展方法可以像该数据类型的普通实例方法那样进行调用 对象初始化器提供了一种简单的、对类的对象进行初始化的方式,它可以在单个语句中调用类的构造函数并设置属性的值 使用匿名类可以不对类进行定义而直接创建实例,编译器会根据声明时指定的属性来创建类的定义小结-1-21-小结-2 LINQ(Language Integrated Query)是语言集成查询的简称 LINQ查询分为3步:新建数据源、创建查询和执行查询 LINQ查询常用的关键字如:From子句、Where子句、Select子句、Group By子句、Order By子句 使用dynamic、可选参数和命名参数谢 谢 Thanks for listening.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

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


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

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


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