Visual Studio 2008与2005或C#3.0与C#2.0的新增功能
本文关键字:C#2 新增 功能 Studio 2008 2005 Visual C#3 | 更新日期: 2023-09-27 17:47:46
我正在浏览C#的隐藏特性问题,并认为我会尝试其中一个我不熟悉的特性。不幸的是,我使用的是VisualStudio2005,并且稍后介绍了有问题的功能。对于C#3.0(Visual Studio 2008)与C#2.0(Visual Studio 2005)中的新功能,有一个好的列表吗?
这不是一个全面的列表,但这些是我最喜欢的C#3.0的一些新功能:
新的类型初始值设定项。而不是这样说:
Person person = new Person();
person.Name = "John Smith";
我可以这样说:
Person person = new Person() { Name = "John Smith" };
类似地,我可以初始化实现IEnumerable的类型,而不是单独添加项目:
List<string> list = new List<string> { "foo", "bar" };
lambda表达式的新语法也很好。而不是键入以下内容:
people.Where(delegate(person) { return person.Age >= 21;);
我可以打这个:
people.Where(person => person.Age >= 21 );
您还可以为内置类型编写扩展方法:
public static class StringUtilities
{
public static string Pluralize(this word)
{
...
}
}
它允许这样的东西:
string word = "person";
word.Pluralize(); // Returns "people"
最后。匿名类型。因此,您可以动态创建匿名类,如下所示:
var book = new { Title: "...", Cost: "..." };
我喜欢的几个功能:
-
VS 2008支持针对不同版本的.NET框架,因此您可以针对2.0、3.0或3.5
-
自动属性很好。
例如:
public int Id { get; set; }
而不是:
private int _id;
public int Id {
get { return _id; }
set { _id = value; }
}
多目标支持。您可以从一个IDE中构建.NET 2->.NET 3.5。
这里有一个指向.NET 3.0上MS页面的链接:http://msdn.microsoft.com/en-us/library/bb822048.aspx…以及针对C#的VS 2008:http://msdn.microsoft.com/en-us/library/bb383815.aspx
我还没有尝试过VS2008和.NET 3.0,但我认为这些链接可能会有所帮助;)
VisualStudio2008的一个未知但功能强大的功能是T4(文本模板转换工具包)。T4是一个直接内置在VisualStudio2008中的代码生成器。
查看Scott Guthrie的博客文章Visual Studio 2008和.NET 3.5发布版。这篇文章是在Visual Studio 2008和.NET 3.5发布时写的。这篇文章包含了许多关于VisualStudio2008和C#3.0新功能的链接。