快捷搜索:  test  as

LINQ体验(3)——C# 3.0新语言特性和改进(下篇)

上一篇我们先容了C# 3.0新说话特点和改进上部分,这篇我们继承先容剩下 的部分。

C# 3.0新说话特点和改进包括:

自动属性(Auto- Implemented Properties)

隐含类型局部变量(Local Variable Type Inference)

匿名类型(Anonymous Types)

工具与聚拢初始化器 (Object and Collection Initializers)

扩展措施(Extension Methods)

Lambda表达式和Lambda表达式树 (Lambda Expression and Lambda Expression Trees)

扩展措施(Extension Methods)

每每我们 必要对CLR类型进行一些操作,但苦于无法扩展CLR类型的措施,只能创建一些 helper措施,或者承袭类。我们来改动上面的User类:

public class User

{

public int Id { get; set; }

public string Name { get; set; }

public int Age { get; set; }

public string Read()

{

return "Id:" + Id + "姓名:" + Name + "年岁:" + Age;

}

}

然后调用

var user = new { Id = 1, Name = "YJingLee", Age = 22 };

var str = user.Read();

现在有了扩展措施就方便多了。

扩展措施容许 开拓职员往一个现有的CLR类型的公开左券(contract)中添加新的措施,而不用 天生子类或者从新编译原本的类型。扩展措施有助于把本日动态说话中盛行的对 duck typing的支持之机动性,与强类型说话之机能和编译时验证交融起来。——引用Scott博文

扩展措施是可以经由过程应用实例措施语法调 用的静态措施。效果上,使得附加的措施扩展已存在类型和构造类型成为可能。他可以对现有类功能进行扩充,从而使该类型的实例具有更多的措施(功能)。

扩展措施容许我们在不改变源代码的环境下扩展(即添加不能改动)现 有类型中的实例措施。

共5页:

上一页1

2

3

4

5

下一页

您可能还会对下面的文章感兴趣: