在第一篇中,知道了Visual Studio 2008新特性,从这篇开始进入此系列的 第二部分——介绍C# 3.0新语言特性和改进。
总体来说, Visual Studio 2008和.NET 3.5是建立在.NET2.0核心的基础之上,.NET2.0核心 本身将不再变化(如果不了解.NET2.0的朋友,请参看MSDN或者一些经典的书籍 ),C# 3.0新语言特性在.NET2.0基础上进行了改进,这些改进的功能可以大大 简化我们编写程序。关于C# 3.0新语言特性在博客园里的很多朋友都介绍了,我 在这里简单介绍一下,记录自己所学的东西,也为后面的LINQ打下基础。
C# 3.0新语言特性和改进包括:
自动属性(Auto-Implemented Properties)
隐含类型局部变量(Local Variable Type Inference)
匿名类型(Anonymous Types)
对象与集合初始化器(Object and Collection Initializers)
扩展方法(Extension Methods)
Lambda表达式和Lambda表达式树 (Lambda Expression and Lambda Expression Trees)
自动属性(Auto-Implemented Properties)
自动属 性可以避免原来这样我们手工声明一个私有成员变量以及编写get/set逻辑,在 VS2008中可以像下面这样编写一个类,编译器会自动地生成私有变量和默认的 get/set 操作。你也可以分别定义get和set的“protected”等访问 级别。
在.Net2.0框架下,我们可以这样写一个User类:
public class User
{
private int _id;
private string _name;
private int _age;
public int Id
{
get { return _id; }
set { _id = value; }
}
public string Name
{
get { return _name; }
set { _name = value; }
}
public int Age
{
get { return _age; }
set { _age = value; }
}
}
现在,可以这样简化:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}