首先感谢anytao http://www.cnblogs.com/anytao/
以下是一些零碎的copy,期望没能侵权!
1. C#诞生之初兼取百家之长,具体都有哪些优秀品质呢,总结起来主要体现在两个方面包括:
- 面向对象编程。C#实现对属性、事件、委托、方法、索引器、构造器的全面支持,为面向对象的封装、继承、多态和接口提供了语言级别的支持。以继承为例,c#支持单实现继承和多接口继承,摒弃了C++中多继承带来的复杂性。
- 跨平台运行时支持。CLR是.NET平台下应用程序的通用语言运行时,是C#程序赖以生存的跨平台环境,因此C#具有了.NET平台语言的所有优势,通用类型系统、自动内存管理、统一异常处理、完全的FCL访问权,都成为C#无与伦比的优势所在。
- 匿名方法
- 可空类型
- 部分类
- 迭代器
- 泛型
其中,泛型支持是C# 2.0的重中之重,.NET框架从CLR级别实现了对泛型的支持,提供专门的IL指令支持泛型操作,同时配合C#语言机制构造一种全新的编程结构,实现了对类型抽象化的通用处理方式,这就是算法重用。
public static void Swap<T>(ref T t1, ref T t2)
{
T temp = t1;
t1 = t2;
t2 = temp;
}
对于不同的类型,在运行时以实际类型对T占位符进行替换,并转换为本地代码,彻底实现了灵活的类型抽象和算法重用。同时,除了代码级别的重用好处,泛型解决了类型转换、装箱与拆箱、类型安全等诸多问题,为程序设计带来巨大的变革。
3.C# 3.0是语言发展历史上的里程碑变革,就像凤凰涅槃一般为C#语言注入强大编程体验和活力,简洁、干净、富有意义,这些特性中主要包括:
- 匿名类型
- 自动属性
- 对象初始化器
- 集合初始化器
- 隐式类型变量和隐式类型数组
- 扩展方法
- 查询表达式
除此之外,C# 3.0的最大亮点就是LINQ(Language Integrated Query,语言集成查询),在CLR中集成类似于SQL式的数据查询能力,一种前所未有的函数式编程体验在面向对象语言中得以大展拳脚,这不得不说是C#带来的超酷体验。
public static void Main()
{
List<User> users = new List<User>
{
new User{Name = "小王", Age = 27},
new User{Name = "小张", Age = 29},
new User{Name = "小李", Age = 23}
};
IEnumerable<User> result = from user in users
where user.Age < 30
orderby user.Age descending
select user;
foreach (var user in result)
{
//执行操作
}
}
无论如何,.NET4.0已经在叩开新年的大门之时,以高调的姿态迎来一片掌声。广大的技术爱好者不会等待太长的时间,就能感受C#发展中的又一次变革。随着.NET4.0在2009年的发布,我们对于C# 4.0的关注也将与日俱增。总体而言,C# 4.0的重头戏主要着眼在以下几个方面:
- 动态编程
- 并行计算
- 后期绑定
- 协变与逆变