Skip to content

1. 引言

本文件的英文版PDF可在此处获取 |HERE|。

本文档中的示例可于 |HERE| 处查阅。

C# 是一种较新的编程语言。自 2000 年起,它便陆续发布了多个测试版,最终于 2002 年 2 月与微软的 .NET 1.0 平台同步正式发布,并与该平台紧密关联。C# 只能在此执行环境中运行。它为在此环境中运行的程序提供了大量类。 粗略地讲,.NET 平台可视为类似于 Java 虚拟机的运行环境。但两者存在两点差异:

  • Java 自诞生以来便已在多种操作系统(Windows、Unix、Macintosh)上运行。 2002年时,.NET平台仅能在Windows系统上运行。近年来,Mono项目[http://www.mono-project.com]使得.NET平台能够在Unix和Linux等操作系统上运行。Mono的当前版本(2008年2月)支持.NET 1.1以及.NET 2.0的部分功能。
  • .NET 平台能够运行用不同语言编写的程序。唯一的要求是编译器能够生成 IL(中间语言)代码,该代码随后由 .NET 虚拟机执行。所有 .NET 类均可供兼容的 .NET 语言使用,这往往消除了语言之间的差异,因为程序会广泛使用这些类。选择一种 .NET 语言更多是出于个人偏好,而非性能考量。

2002年,C# 基于 .NET 1.0 平台。当时,C# 基本上是 Java 的“复制品”,而 .NET 则是一个与 Java 开发平台非常相似的类库。在学习该语言时,你可以从 C# 环境无缝切换到 Java 环境,而不会感到格格不入。 甚至还有工具可以将 源代码从一种语言转换为另一种语言。此后,情况发生了变化。如今,每种语言和开发平台都有其独特之处。将技能从一个领域转移到另一个领域已不再那么容易。

C# 3.0 和 .NET 3.5 框架带来了许多新特性。其中最重要的当属 LINQ(语言集成查询),它允许以统一的方式查询对象序列,类似于 SQL 语言,可操作的对象序列包括数组和列表等内存结构、数据库(目前仅限 SQL Server——2008 年 2 月)或 XML 文件。

本文档并非详尽的教程。例如,其中并未涉及 LINQ。它面向已具备编程基础并希望了解 C# 基础知识的读者。本文是 2002 年发布原始文档的修订版。

以下几本书对我编写本课程提供了帮助:

2002年版参考书目:

  • 《专业 C# 编程》,Wrox 出版社
  • 《C#与.NET》,Gérard Leblanc 著,Eyrolles出版社

当时,我认为这两本书都非常出色。此后,Gérard Leblanc 出版了更新版本,包括以下这些:

  • 《C#与.NET 2005》,Gérard Leblanc 著,Eyrolles出版社

在2008年的修订版中,我参考了以下资料:

  • 原始的2002年文档。该文档直接复制粘贴自我的Java课程讲义,不仅包含排版错误,还存在更严重的谬误,例如将System.Int32等基本类型误称为类,而实际上它们是结构体。这是我的过失……
  • Visual Studio Express 2008 MSDN 文档
  • Joseph 和 Ben Albahari 合著、O'Reilly 出版的《C# 3.0 速查手册》(C# 3.0 in a Nutshell),这是我读过的最好的编程书籍之一。

本文档中示例的源代码可在 [http://tahe.developpez.com/dotnet/csharp/] 获取。

Serge Tahé,2008年5月

自2008年5月以来,C# 自然已经有所发展。不过,本文档对于学习该语言仍然具有参考价值。除了本课程之外,您还可以在文章《ORM Entity Framework 5 Code First 入门》中找到关于 ORM(对象关系映射器)Entity Framework 的介绍,网址为 [https://stahe.github.io/en-ef5cf-oct-2012/]。

Serge Tahé,2013年10月