.net 3.5的新的优良特性:
- 自动属性(Auto-Implemented Properties)
- 隐含类型局部变量(Local Variable Type Inference)
- 匿名类型(Anonymous Types)
- 对象与集合初始化器(Object and Collection Initializers)
- 扩展方法(Extension Methods)
- Lambda表达式和Lambda表达式树 (Lambda Expression and Lambda Expression Trees)
自动属性举例:
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
.net 3.5下新的写法:
public string Name
{
get;
set;
}
隐含类型局部变量举例:
var url = http://www.microsoft.com;
var name = "微软公司";
var status = false;
匿名类型举例:
var site1 = new { url = "http://www.microsoft.com", title = "微软公司", author = "T.McGrady", qq = "249522" };
var site2 = new { url = "http://745.cc", title = "实用工具大全", author = "T.McGrady", qq = "249522" };
site1 = site2;
对象与集合初始化器举例:
User user = new User();
user.Id = 1;
user.Name = "T.McGrady";
user.Age = 25;
.net 3.5下新的写法:
User user = new User { Id = 1, Name = "T.McGrady", Age = 25 };
扩展方法举例:
public static int Int(this HttpRequest request, string key)
{
return int.Parse(request[key]);
}
调用方法:
int id = Request.Int("id");
Lambda表达式和Lambda表达式树举例:
string[] strs = { "http://www.microsoft.com", "微软公司", "249522", "T.McGrady" };
var q = strs.FirstOrDefault(p => p.IndexOf("microsoft"));
Console.Write(q);
这里使用了一个Linq语法,p => p.IndexOf("microsoft")就是Lambda表达式。
使用Linq可以一句Sql语句都不写。这样虽然提高了开发效率,但是Linq归根结底还是生成Sql语句,性能上肯定比不上没有存储过程。而且在并发上似乎也会有问题。这个东西只能开发小型系统了。大的系统要求效率。用Linq会损失很多性能。
如果你不想升级成.net 3.5,你依然可以使用VS2008,VS2008支持.net 2.0,.net3.5的核心也是.net 2.0。你不用担心升级你的项目会有很大风险。