C# 3.0 新特性

    当年 .Net Framework 2.0 刚发布时,泛型(Generics)、匿名方法(Anonymous Methods)、迭代器(Iterators)和不完全类型(Partial Types)被称为 .Net Framework 2.0 的四项新特性。现在随着微软 .Net 3.0、3.5 的发布推广,关于新特性的介绍却都是以 C# 3.0 为题,就连 Linq 这样在 .Net Framework 3.5 中才支持的特性,也算作 C# 3.0 的新特性。这种称呼叫法的改变,也许显示了微软在逐渐地把 .Net、C# 这些概念区分的更清晰,就像当年的 Visual Studio .Net 2003 到 Visual Studio 2005 一样。

    粗粗看来一下 C# 3.0 的新特性:

1. 隐式类型化本地变量(Implicitely typed local variables)

刚看到这个有点 JScript 式的特性,觉得很一般,我甚至不会去用,因为与我要求的清晰、严谨的编码风格不符,呵呵。但看到后面的匿名类型、Linq 查询表达式等特性时,觉得这个还是很有用的。

2. 扩展方法(Extension methods)

不错的特性,省得我为了给一个类加个简单无比的新功能,就非得用组合或继承写个新类。

3. 对象初始化器(Object initializers)

不错,省了一堆大同小异的重载的构造函数。

4. 集合初始化器(Collect initializers)

一般,自从有了 List<T>,需要自己实现 ICollection<T> 接口的机会就不多了。

5. 匿名类型(Anonymous types)

这个也挺有用,省事儿。

6. 隐式类型化数组(Implicitely typed arrays)

是隐式类型化本地变量这一新特性在数组初始化上的延伸。

7. Lambda 表达式(Lambda expressions)

为了使初始化委托和处理事件的程序代码更加简洁,在 .Net 2.0 中引入了匿名方法,在 3.0 中又更进一步,引入了看起来更明快却有些唬人的 Lambda 表达式。

8. 查询表达式(Quer expressions)

强大的 Linq,第 9 条表达式树也是跟 Linq 有关的,这是 C# 3.0 最精华的新特性,有待仔细研究学习。

9. 表达式树(Expression trees)

 

另外,发现在 .Net Framework 3.0 的代码中,简单的 Property 属性可以只写 get、set,连对应的 Field 的声明都省了,好像在定义接口:

class Program
{
    public string Name { get; set; }

    static void Main( string[] args )
    {
        Program p = new Program();
        p.Name = "HelloWorld";
        Console.WriteLine( p.Name );
        Console.Read();
    }
}

这样的代码也可运行,C# 3.0 可真够为程序员着想到家了。

posted on   阳春三月  阅读(434)  评论(1编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架

导航

< 2008年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

统计

点击右上角即可分享
微信分享提示