如何实施拯救C的行动计划?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2545个文字,预计阅读时间需要11分钟。
似乎还有不少项目在用C语言开发。
似乎还有不少项目在用C# 2.0(本文最后我们来做一个调查),但是C# 2.0的生产力实在不如C# 3.0——如果您不信,那么一会儿就会意识到这一点。有朋友认为语言能力不重要,有了好用的框架/类库也可以有很高的生产力。所以这篇文章,我们就设法使用“类库”来弥补C# 2.0的缺陷。
但是,我们真做的到吗?
C# 2.0之殇C# 2.0较C# 1.0来说是一个突破,其中引入了泛型,以及匿名方法等新特性。如果前者还可以说是平台的增强,而语言只是个“辅助”的话,而后者则百分之一百是编译器的魔法了。别小看这个特性,它为C# 3.0的高生产力踏出了坚实的一步——不过还是差了很多。例如,我们有一个要求:“把一个字符串数组中的元素转化为整数,再将其中的偶数放入一个List<int>容器中”。如果是C# 3.0,这是再简单不过的功能:
string[] strArray = { "1", "2", "3", "4" }; var even = strArray.Select(s => Int32.Parse(s)).Where(i => i % 2 == 0).ToList();
那么对于C# 2.0(当然对于C# 1.0也一样),代码又该怎么写呢?
List<int> even = new List<int>(); foreach (string s in strArray) { int i = Int32.Parse(s); if (i % 2 == 0) { even.Add(i); } }
有人说函数式编程有什么用,C# 3.0就是个很好的证明。
本文共计2545个文字,预计阅读时间需要11分钟。
似乎还有不少项目在用C语言开发。
似乎还有不少项目在用C# 2.0(本文最后我们来做一个调查),但是C# 2.0的生产力实在不如C# 3.0——如果您不信,那么一会儿就会意识到这一点。有朋友认为语言能力不重要,有了好用的框架/类库也可以有很高的生产力。所以这篇文章,我们就设法使用“类库”来弥补C# 2.0的缺陷。
但是,我们真做的到吗?
C# 2.0之殇C# 2.0较C# 1.0来说是一个突破,其中引入了泛型,以及匿名方法等新特性。如果前者还可以说是平台的增强,而语言只是个“辅助”的话,而后者则百分之一百是编译器的魔法了。别小看这个特性,它为C# 3.0的高生产力踏出了坚实的一步——不过还是差了很多。例如,我们有一个要求:“把一个字符串数组中的元素转化为整数,再将其中的偶数放入一个List<int>容器中”。如果是C# 3.0,这是再简单不过的功能:
string[] strArray = { "1", "2", "3", "4" }; var even = strArray.Select(s => Int32.Parse(s)).Where(i => i % 2 == 0).ToList();
那么对于C# 2.0(当然对于C# 1.0也一样),代码又该怎么写呢?
List<int> even = new List<int>(); foreach (string s in strArray) { int i = Int32.Parse(s); if (i % 2 == 0) { even.Add(i); } }
有人说函数式编程有什么用,C# 3.0就是个很好的证明。

