旋即首稿子是,《C#,语言的变更》

这篇稿子是,《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)
{
//执行操作
}
}