Before we leave the subject, we should point out a couple of limitations of C#. The one area the language is not designed for is time-critical or extremely high performance code—the kind where you really are worried about whether a loop takes 1,000 or 1,050 machine cycles to run through, and you need to clean up your resources the millisecond they are no longer needed. C++ is likely to continue to reign supreme among low-level languages in this area. C# lacks certain key facilities needed for extremely high perfor- mance apps, including the ability to specify inline functions and destructors that are guaranteed to run at particular points in the code. However, the proportions of applications that fall into this category are very low.
B.原文的翻译.NET和C#简介
为了了解.NET的重要性,提醒我们自己一下近10年来出现的许多Windows技术的本质是十分有用的。尽管它们可能在表面上看来完全不同,但是Windows操作系统从Windows 3.1(1992年)到Windows Server 2003,在内核上都有相同的熟悉的应用程序接口。当我们转而使用Windows的新版本时,API中增加了非常多的新功能,但这是一个演化和扩展API的过程,而不是替换它。
向后兼容性是Windows技术的极其重要的特性,也是Windows平台的一个长处,但它有一个很大的缺点。每次某项技术进行演化,增加了新功能后,都会比它以前更复杂。
很明显,对此必须进行改进。MiCrosoft不可能一直扩展这些开发工具和语言,使它们越来越复杂,既要保证能跟上最新硬件的发展步伐,又要与20世纪90年代初开始流行的Windows产品向后兼容。如果要得到一种简单而专业化的语言、环境和开发工具,让开发人员轻松地编写优秀的软件,就需要一种新的开端。
在这里,MiCrosoft决定给开发人员另一个选择—— 专门用于.NET、具有新起点的语言, 即Visual C# .NET。MiCrosoft在正式场合把C#描述为一种简单、现代、面向对象、类型非常安全、派生于C和C++的编程语言。大多数独立的评论员对其说法是“派生于C、C++ 和Java”。这种描述在技术上是非常准确的,但没有涉及到该语言的真正优点。从语法上看,C#非常类似于C++和Java,许多关键字都是相同的,C#也使用类似于C++和Java的块结构,并用括号({})来标记代码块,用分号分隔各行语句。对C#代码的第一印象是它非常类似于C++或Java代码。但在这些表面上的类似性后面,C#学习起来要比C++容易得多,但比Java难一些。其设计与现代开发工具的适应性要比其他语言更高,它同时具有Visual Basic的易用性、高性能以及C++的低级内存访问性。C#包括以下一些特性:
(1)完全支持类和面向对象编程,包括接口和继承、虚函数和运算符重载的处理。
(2)定义完整、一致的基本类型集。
(3)对自动生成XML文档说明的内置支持。
(4)自动清理动态分配的内存。
(5)可以用用户定义的特性来标记类或方法。这可以用于文档说明,对编译有一定的影响(例如,把方法标记为只在调试时编译)。
(6)对.NET基类库的完全访问权,并易于访问Windows API。
(7)可以使用指针和直接内存访问,源)自(优尔+文=论]文]网[www.youerw.com,但C#语言可以在没有它们的条件下访问内存。
(8)以VB的风格支持属性和事件。
(9)改变编译器选项,可以把程序编译为可执行文件或.NET组件库,该组件库可以用与ActiveX控件(COM组件)相同的方式由其他代码调用。
(10)C#可以用于编写ASP.NET动态Web页面和XML Web服务。
应该指出,对于上述大多数特性,VB.NET和Managed C++也具备。但C#从一开始就使用.NET,对.NET特性的支持不仅是完整的,而且提供了比其他语言更合适的语法。C#语言本身非常类似于Java,但其中有一些改进,因为Java并不是为应用于.NET环境而设计的。