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 可真够为程序员着想到家了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架