本文主要是关注于LINQ——我认为是VS2008(.NET3.5)中最令人兴奋的特性。LINQ使查询成为了.NET中头等的编程概念,被查询的数据可以是XML(LINQ to XML)、Databases(LINQ to SQL、LINQ to Dataset、LINQ to Entities)和对象(LINQ to Objects)。LINQ也是可扩展的,允许你建立自定义的LINQ数据提供者(比如:LINQ to Amazon、LINQ to NHibernate、LINQ to LDAP)。
在这里我会讨论C#3.0中的一些新的语言特性和改进,正是它们使得LINQ变得如此强大,让你可以写出这样的代码:
var result = from c in Customers where c.City == Boston" orderby c.LastName descending select new { c.FirstName, c.LastName, c.Address };
新的语言特性
I/ 自动属性
public class Point { private int _x, _y; public int X { get { return _x; } set { _x = value; } } public int Y { get { return _y; } set { _y = value; } } }
public class Point { public int X { get; set; } public int Y { get; set; } }
(这个特性和LINQ还没有关系)
II/ 局部变量类型
使用这个特性,声明一个局部变量,它的具体类型是通过初始化表达式来推断。这点是通过var关键词完成的(这个使用脚本语言的人应该很熟悉,但它们实际上是有很大区别的)。我们可以写出如下的代码:
var num = 50; var str = "simple string"; var obj = new myType(); var numbers = new int[] {1,2,3}; var dic = new Dictionary<int,myType>();
int num = 50; string str = "simple string"; myType obj = new myType(); int[] numbers = new int[] {1,2,3}; Dictionary<int,myType> dic = new Dictionary<int,myType>();
III/ 对象初始化和集合初始化
我们继续使用上面的Point类。假设我们想要这个类的一个实例,我们会建立对象并设置它的属性,代码会是这样子的:
Point p = new Point(); p.X = 0; p.Y = 0;
文章来源于领测软件测试网 https://www.ltesting.net/