C# 1.0,Visual Studio .NET 2002
首次发布C# 1.1,Visual Studio .NET 2003
#line 杂注和 xml 文档注释
C# 2.0,Visual Studio .NET 2005
匿名方法、泛型、可以为 null 的类型、迭代器/yield、static 类、委托的协变/逆变
C# 3.0,Visual Studio .NET 2008
对象和集合初始值设定项、lambda 表达式、扩展方法、匿名类型、自动属性、语言集成查询 (LINQ)、匿名类型、本地 var 类型推理、LINQ
C# 4.0,Visual Studio .NET 2010
Dynamic、命名参数、可选参数、泛型协变/逆变
C# 5.0,Visual Studio .NET 2012
Async/await、调用方信息属性
Visual Studio .NET 2013
Bug 修复、性能改进以及 .NET Compiler Platform ("Roslyn") 的技术预览
C# 6,Visual Studio .NET 2015
1.跨平台开发,通过Xarmain可以对android和ios开发
2.直接给属性赋值 public string FirstName { get; }="feige";
3.Using中可以指定一个静态类,然后可以在随后的代码中直接使用静态的成员
4.字符串嵌入值\{}
5.nameof 检查参数
6.带索引的对象初始化
7.异常过滤器
8.catch和finally 中的 await 在C#5.0中,await关键字是不能出现在catch和finnaly块中的。而在6.0中是完全可以的
9.结构体可实现无参的构造函数
10.Null 条件成员访问和索引编制,可以在执行成员访问 (?.) 或索引 (?[]) 操作之前以非常轻量的语法方式测试是否存在 null。