笔记20091202之C#3.0新特性
C#3.0新特性(一定要记住):
1、对象初始化器
User user = new User { Name = “Jerry Stone”, Sex = “Male” }
2、集合初始化器
List<User> users= new List<UserInfo>
{
new User{ Name = “Jerry Stone”, Sex = “Male” },
new User{ Name = “Lisa Stone”, Sex = “Female”}
}
3、自动属性
Class User
{
public string Name{ get; set; }
public string Sex{ get'; private set; }
}
4、隐式类型变量和隐式类型数组
var i = 100;
var str = “Hello, CnBlog!”
var arr = new[] {“Sam”, "Dean”}
var user = new User { Name = “Jerry”, Sex = “Male”}
PS:隐式类型变量必须初始化,而且值不能为null,或者类型不定的表达式;隐式类型仍为强类型,只是类型的
5、匿名类型
Class User
{
public string Name{ get; set; }
public string Sex{ get'; private set; }
}
var user = new { Name = “Lisa”, Sex = “Female”}
PS:对象初始化器中的参数名称、类型和顺序都一致时,这些匿名类型的对象将视为同一类型
6、扩展方法(LINQ实现的基础之一)
扩展方法必须实现为静态方法,只能声明于非泛型或非嵌套的静态类中,并且必须以this关键字作为其第一个参数修饰符。
扩展方法是LINQ实现的最基本条件,LINQ中所有的查询操作符都是由扩展方法来定义的。
7、查询表达式
IEnumerable<User> selectUsers = from user in users
where user.Sex == “Male”
select user;
实际将被翻译成:
IEnumerable<User> selectUsers = users.Where(user => user.Sex == “Male”)
8、LINQ
C#3.0在语言方面的新特性,主要是为实现LINQ而做的准备。