技术开发 频道

.NET十年之语言的变迁

  接着,我们再来了解一下自动属性带来的语法魅力,在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)
    {
        
//执行操作
    }
}

  你看,这种体验果然非同凡响,优雅而简单没有辜负Anders对于代码美学的追求。而作为编程用户,我们同样体味了这种理念在功能和结构上的双重精彩。

0
相关文章