第2章C#语言快速掌握.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
六、委托与事件 1、委托与事件 事件示例 七、C#3.0/3.5的新特性 C# 3.0/3.5引入了如下几个特性: 隐型局部变量,局部变量的类型从初始化它们的表达式推导而来。 扩展方法,使得使用附加的方法扩展已存在的类型和构造类型成为可能。 Lambda表达式,是匿名方法的演进,可提供改良的类型推倒和到委托类型和表达式树的转换。 对象初始化器,简化了对象的构造和初始化。 匿名类型,是从对象初始化器自动推导和创建的元组类型。 隐型数组,数组的创建和初始化的形式,它从数组初始化器推导出数组的元素类型。 查询表达式,为类似于关系和层次化查询语言提供一个语言集成的语法。 表达式树,允许lambda表达式表示为数据而不是代码。 七、C#3.0/3.5的新特性 1、隐型局部变量 隐型局部变量:由关键字var定义,类型通过初始化这个变量的表达式来推导。 示例 var num = 1;//可以判断num为整型 var str = “你好!”;//可以判断str为字符串 var f = 1.0;//可以判断f为浮点型 七、C#3.0/3.5的新特性 2、扩展方法 扩展方法可为现有类型添加方法,这些类型可以是基本数据类型(如int、string等),也可以自己定义的类型。 public static class aaa { public static int TestMethod(this string str) { return str.Length; } public static double Test(this double x,int y) { return 10 *x+y; } } class Program { static void Main(string[] args) { string s = aaaa; int x = s.TestMethod(); double y = 3; y = y.Test(3); } } 1)必须建一个静态类,用来包含要添加的扩展方法 2)要添加的扩展方法必须为一个静态方法 3)第一个参数必须含有this关键字,this关键字后面的类型为需要扩展的类型。第一个参数代表对象本身, 第二个参数开始为参数列表中的参数 class ClassA //定义类 { } static class aaaa //扩展方法 { public static void aaa(this ClassA A) { } } class Program { static void Main(string[] args) { ClassA A = new ClassA(); A.aaa(); Console.ReadKey(); } } 七、C#3.0/3.5的新特性 3、Lambda表达式 Lambda表达式是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型 一个Lambda表达式在句法上是: (input parameters) = expression/{statement;} 其中input parameters参数列表, expression /{statement;}为表达式或语句块。 表达式一般都有值,故其对应的委托也应该有类型。 示例(匿名方法)含b的元素 string[] list = new string[] { abc, abed, hebe }; string[] list1 = Array.FindAll(list, delegate(string s) { return s.IndexOf(b) = 0; } ); //表达式方式 class Program { delegate int Del(int i); static void Main(string[] args) { De

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档