如果你正在向.NET迁移,而且已经会用C++或者Java了,那么C#就是一个理所当然的选择。但是,如果你还没有决定好是否要迁移到.NET上,那么你可能会很奇怪,为什么你要迁移到C#,而不是继续使用基于COM的C++。通常想要迁移到.NET的决定不仅仅是因为希望学习C#,还有其他的原因,但是C#的确提供了任何基于COM的语言所不能够提供的好处,这要感谢.NET框架。本文会举出迁移到C#的十条理由。
C#是现代化版本的C++。在最开始,你有使用广泛的C语言。C++出现为C增加了面向对象的特性,于是C++就成为了为Windows创建“真正”应用程序的语言(根据C++开发人员的观点)。C++被用来编写架构和低层语言,而Visual Basic的开发人员则编写商业应用程序。
C#将VB的快速开发模型(rapid development paradigm)带到了C++开发人员的世界,并造成了显著的改变。C#利用了.NET框架,这就意味着你能够使用一个强大的窗体引擎,就像VB开发人员多年所拥有的一样。新的数据类型也已经被加入,例如用于处理金融计算的decimal数据类型。
C#是类型安全的(type-safe),这就意味着很多事情。例如,你不能使用没有初始化的变量。在C++里,要声明一个变量然后检查其值很容易,但这会在应用程序里造成巨大的破坏。在将一个变量初始化为某个合法的值之前,如果你想要使用它,那么C#编译器就会通知你。
有了C#,你就不再需要经过数组的尾部,而使用C和C++你已经这样做了有多年了。在C++里,你可以声明一个有三个元素的数组,然后很高兴地检查这个数组的第四个元素,并获得下一个内存块。
尽管很多人都说C++已经是面向对象的了,但是C#却将面向对象提高到了另一个层次。即使简单的数据类型都可以被当作对象来处理,这就意味着int会有一个与之相关联的方法。例如你可以使用ToString方法来为int获取一个字符串值,如下面所示。
int Counter=14;
Console.Write(Counter.ToString());
此外,文字串能够被作为对象来处理,还可以支持多种方法,例如Trim、ToUpper、ToLower和许多其他的方法,如下面所示:
Console.Write("hello, world".ToUpper());