Visual Studio 2008 与 2005 或 C# 3.0 与 C# 2.0 相比有何新增功能?
-
05-07-2019 - |
题
我正在浏览 C# 的隐藏特性 问题并认为我应该尝试一下我不熟悉的功能之一。不幸的是,我使用的是 Visual Studio 2005,并且该功能是稍后介绍的。是否有一个很好的列表来列出 C# 3.0 (Visual Studio 2008) 与 C# 3.0 中的新功能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; }
}
多目标支持。您可以构建.NET 2 - &gt; .NET 3.5全部来自一个IDE。
以下是.NET 3.0上MS页面的链接: http:/ /msdn.microsoft.com/en-us/library/bb822048.aspx ......以及VS 2008 for C#: http://msdn.microsoft。 COM / EN-US /库/ bb383815.aspx
我没有尝试过VS2008和.NET 3.0,但我认为这些链接可能会有所帮助;)
Visual Studio 2008的一个未知但强大的功能是 T4(正文模板转换工具包)。 T4是Visual Studio 2008中内置的代码生成器。
查看 Scott Guthrie的博文 Visual Studio 2008和.NET 3.5发布。这篇文章是在Visual Studio 2008和.NET 3.5发布时编写的。这篇文章包含了许多Visual Studio 2008和C#3.0新功能的链接。