这篇作品不错,《C#,语言的浮动》

 

http://www.cnblogs.com/anytao/archive/2009/05/08/must_net_29.html

 

其中的看点:

 

 

看点1:

========

以最简易的调换数据为例,大家来询问泛型带来的好处:

// Release : code01, 2009/05/07
// Author  : Anytao, http://www.anytao.com
public static void Swap(ref int x, ref int y)
{
int temp = x;
x = y;
y = temp;
}
public static void Swap(ref string str1, ref string str2)
{
string temp = str1;
str1 = str2;
str2 = temp;
}

上述二种算法分别完毕了对整型、字符串型数据的沟通,在泛型引入以前完毕均等的置换算法须要各自为持有的品类创设相似的处理逻辑,这明摆着是一种代码上的浪费,而泛型特性彻底解决了这一标题:

// Release : code02, 2009/05/07
// Author  : Anytao, http://www.anytao.com
public static void Swap<T>(ref T t1, ref T t2)
{
T temp = t1;
t1 = t2;
t2 = temp;
}

看点2:

=============

 

 

以目标开首化器为例,在2.0时起头化对象成员,大家以那种艺术贯彻:

User user = new User();
user.Name = "小王";
user.Age = 28;

在3.0中,已毕目标初步化有了更好的化解方案,由对象开始化器来成功:

User user = new User { Name = "小王", Age = 28 };

同样的办法可以用来落成集合的开首化和隐式类型的初阶化等。

继而,我们再来精通一下电动属性带来的语法魅力,在3.0事先进行品质封装的是一件劳心的作业,例如:

// Release : code03, 2009/05/07
// Author  : Anytao, http://www.anytao.com
class User
{
private string name;
public string Name
{
get { return name; }
}
private int age;
public int Age
{
get { return age; }
set { age = value; }
}
}

而活动属性将这一切化简为无形,语法简单而效果仍然:

// Release : code04, 2009/05/07
// Author  : Anytao, http://www.anytao.com
public class User
{
public string Name { get; set; }
public int Age { get; set; }
}

这个所有的新特点最终都为了一个联名的目的而铺垫,那就是C#
3.0中最重量级的新特色:LINQ。所以,本文也不可以少了对LINQ的座谈,在代码级别完毕类似于SQL式的询问语法,以项目安全的通用方式成就增、删、改、查等数据操作的主干形式。只要数据源基于IEnumerable<T>接口而落成,那么不论是是关系型数据、内存中会聚如故XML都足以用作LINQ查询对象开展数量处理,这为面向对象语言已毕函数式的编程体验创制了标准,一种崭新的编程风格为编程体验刮来一股旋风:

// Release : code05, 2009/05/07
// Author  : Anytao, http://www.anytao.com
public static void Main()
{
List<User> users = new List<User>
{
new User{Name = "小王", Age = 27},
new User{Name = "小张", Age = 29},
new User{Name = "小李", Age = 23}
};
IEnumerable<User> result = from user in users
where user.Age < 30
orderby user.Age descending
select user;
foreach (var user in result)
{
//执行操作
}
}

相关文章

网站地图xml地图