1. 简介
本文档的 PDF 版本可通过 |HERE| 获取。
本文档的示例可通过 |HERE| 获取。
C# 是一种新兴语言。自 2000 年起,它陆续发布了多个测试版,最终于 2002 年 2 月与它所关联的 Microsoft .NET 1.0 平台一同正式发布。 C# 只能在此运行环境中工作。该环境为在其内部运行的程序提供了一套非常重要的类库。粗略地说,.NET 平台是一个类似于 Java 虚拟机的运行环境。但有两点区别值得注意:
- Java自诞生以来便可在多种操作系统(Windows、Unix、Macintosh)上运行。而在2002年,.NET平台仅能在Windows系统上运行。 近年来,Mono [http://www.mono-project.com] 项目使得 .NET 平台能够在 Unix 和 Linux 等 OS 系统上运行。 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 服务器——2008 年 2 月)或 XML 文件的对象序列进行查询。
本文档并非详尽的教程。例如,LINQ 并未在此涉及。它面向已具备编程基础并希望了解 C# 基础知识的读者。本文是对 2002 年发布的原始文档的修订版。
以下几本书对我编写本课程提供了帮助:
2002年版参考书目:
- 《Professional C# programming》,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文档
- O'Reilly出版社出版的《C# 3.0 in a Nutshell》(作者:Joseph和Ben Albahari),这是我读过的最好的编程书籍之一。
本文示例的源代码可在 [使用 .NET Framework 3.5 学习 C# 3.0(2008)] 网站上获取。
Serge Tahé,2008年5月
自2008年5月以来,C# 自然经历了演变。然而,本文档对于学习该语言仍然具有现实意义。作为本课程的补充,在《ORM Entity Framework 5 Code First 入门》一文中,您将看到对 ORM (对象关系映射器)Entity Framework 的介绍,详见《ORM Entity Framework 5 Code First 入门》一文,该文位于 URL [通过实例学习 Entity Framework 5 Code First(2012)]。
Serge Tahé,2013年10月