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)中的新功能,有一个好的列表吗?

Visual Studio 2008与2005或C#3.0与C#2.0的新增功能

这不是一个全面的列表,但这些是我最喜欢的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新功能的链接。

相关文章: