Terry's blog

Focus on bigdata and cloud.

博客园 首页 新随笔 联系 订阅 管理

2007年11月21日 #

摘要: 1. 隐式类型化本地变量 2. 匿名类型(Anonymouse Type) 3. 隐式类型化数组 4. 对象构造者 5. Lambda 表达式 6. 扩展方法 7. linq 阅读全文
posted @ 2007-11-21 17:48 王晓成 阅读(1377) 评论(0) 推荐(0) 编辑

摘要: 概述: 当我们需要对已有类的功能进行扩展时,我们通常会想到继承,继承已有类,然后为其加入新的行为。而C# 3.0中加入的扩展方法特性,则提供了另一种实现功能扩展的方式,我们可以在不使用继承的前提下实现对已有类本身的扩展,这种方法并不会产生新的类型,而是采用向已有类中加入新方法的方式来完成功能扩展。 在对已有类进行扩展时,我们需将所有扩展方法都写在一个静态类中,这个静态类就相当于存放扩... 阅读全文
posted @ 2007-11-21 17:43 王晓成 阅读(940) 评论(0) 推荐(0) 编辑

摘要: 概述: Lambda 表达式(拉姆达表达式) 和 匿名方法 其实是一件事情。唯一的不同是:他们语法表现形式不同。Lambda 表达式是在语法方面的更进一步的进化。在本质上,他们是一件事情。他们的作用都是:产生方法。即:内联方法。 所以:我们要了解 Lambda 表达式 就应该同时也了解 匿名方法。下面先看一个简单的代码例子,分别用匿名方法和Lambda 表达式来实现对数组的搜索: 实例代... 阅读全文
posted @ 2007-11-21 16:42 王晓成 阅读(956) 评论(2) 推荐(0) 编辑

摘要: 概述: C# 3.0中加入的最为复杂的特性就是Linq查询表达式了,这使我们可直接采用类似于SQL的语法对集合进行查询,这就使我们可以享受到关系数据查询的强大功能 实例代码: public static void Main() { // 定义匿名数组persons, 并为其赋初值 var pers... 阅读全文
posted @ 2007-11-21 15:55 王晓成 阅读(855) 评论(0) 推荐(1) 编辑

摘要: 概述: 我们在声明数组时,可以同时对其进行初始化,这样就省去了很多麻烦,但是在创建类的对象时,这招可就不灵了,我们要么调用该类的构造函数完成对象的初始化,要么就手工进行初始化。这两种方法都不太方便,使用构造函数来对对象进行初始化时,我们为了某种灵活性,可能需要编写构造函数的多个重载版本,实在是麻烦。 C#3.0中加入的对象构造者特性,使得对象的初始化工作变得格外简单,我们可以采用类似于数组... 阅读全文
posted @ 2007-11-21 10:44 王晓成 阅读(731) 评论(0) 推荐(0) 编辑

摘要: 概述: 这个特性是对隐式类型化本地变量的扩展,有了这个特性,将使我们创建数组的工作变得简单。我们可以直接使用"new[]"关键字来声明数组,后面跟上数组的初始值列表。在这里,我们并没有直接指定数组的类型,数组的类型是由初始化列表推断出来的。 实例代码: public static void Main() { var intArray ... 阅读全文
posted @ 2007-11-21 10:17 王晓成 阅读(630) 评论(0) 推荐(0) 编辑

摘要: 概述: 在初始化的时候根据初始化列表自动产生类型的一种机制。 实例代码: public static void Main() { var x = new { a = 2, b = 4, c = "this is a string" }; Console.WriteLine(x.a); ... 阅读全文
posted @ 2007-11-21 09:52 王晓成 阅读(941) 评论(0) 推荐(0) 编辑