【问题标题】:What is new in Visual Studio 2008 vs 2005 or C# 3.0 vs C# 2.0?Visual Studio 2008 与 2005 或 C# 3.0 与 C# 2.0 有哪些新功能?
【发布时间】:2008-10-30 04:15:48
【问题描述】:

我正在浏览Hidden Features of C# 问题,并认为我会尝试我不熟悉的功能之一。不幸的是,我使用的是 Visual Studio 2005,后来才介绍了相关功能。 C# 3.0 (Visual Studio 2008) 与 C# 2.0 (Visual Studio 2005) 中的新功能是否有很好的列表?

【问题讨论】:

    标签: c# visual-studio-2008 visual-studio-2005 .net-2.0 .net-3.0


    【解决方案1】:

    这不是一个完整的列表,但这些是我最喜欢的 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: "..." };
    

    【讨论】:

      【解决方案2】:

      我喜欢的几个功能:

      • 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; }
      }
      

      【讨论】:

      • 可以说,您也可以通过在 VS 2005 中使用代码 sn-ps 来获取自动属性。
      【解决方案3】:

      多目标支持。您可以从一个 IDE 构建 .NET 2 -> .NET 3.5。

      【讨论】:

        【解决方案4】:

        这是 .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,但我认为这些链接可能会有所帮助;)

        【讨论】:

          【解决方案5】:

          Visual Studio 2008 的一个未知但强大的功能是T4 (Text Template Transformation Toolkit)。 T4 是直接内置于 Visual Studio 2008 中的代码生成器。

          查看Scott Guthrie's 博客帖子Visual Studio 2008 and .NET 3.5 Released。这篇文章是在 Visual Studio 2008 和 .NET 3.5 发布时编写的。这篇文章包含很多关于 Visual Studio 2008 和 C# 3.0 新功能的链接。

          【讨论】:

            猜你喜欢
            • 2010-09-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-02-09
            相关资源
            最近更新 更多