第 1 节 · 第一部分 基础语法

简介

C# 是微软做的面向对象语言,代码编译后在 .NET 上运行,.NET 负责执行、管内存,还带一大堆现成类库。

时长 4:36授课计划第 1 周

学完这一节,你能

讲义

跟着视频的顺序写。每行代码都有注释,代码和运行结果都是实际运行得到的。

1C# 是谁做的

C# 读作 C Sharp,是微软开发的编程语言,2000 年前后由微软工程师 Anders Hejlsberg 主导设计。到今天已经迭代了十几个版本,功能越来越强,语法越来越简洁。

2面向对象

C# 是一门面向对象的语言:把现实里的东西,比如用户、汽车、订单,写成代码里的对象,再通过操作这些对象来完成任务。这样写出来的代码更贴近真实业务,也更好维护和扩展。

3C# 能做什么

  • Windows 桌面软件,比如办公工具和管理系统。
  • 网站后端和 API 接口:用 ASP.NET Core,扛得住大流量。
  • 游戏:Unity 引擎用的就是 C#,《王者荣耀》《原神》这些手游背后都有它。
  • 手机应用:用 .NET MAUI,一套代码同时做 iOS 和 Android 应用。
  • 云服务:在 Azure 这样的云平台上做企业级服务。
  • 机器学习:配合 ML.NET 训练和运行机器学习模型。

4C# 和 .NET

打个比方:C# 是驾驶技术,.NET 是汽车和道路。C# 写的代码先编译好,再放到 .NET 平台上才能跑起来。

  • 运行时(程序运行时在背后干活的那部分):负责执行代码、管理内存。
  • 类库(写好的、可以直接拿来用的代码):大量现成的工具,读写文件、发网络请求、操作数据库,都不用从零写。
  • 跨平台:早期的 .NET 只能在 Windows 上运行,现在 Windows、macOS、Linux 都能跑。

5和别的语言比

  • C/C++:大括号、分号这些写法 C# 是学它们的,但 C# 平时不用直接操作指针(存内存地址的变量),也不用手动管理内存,入门更安全。
  • Java:两者很像,有人叫 C# “微软的 Java”;不过 C# 的语言特性普遍更新,比如 Lambda 表达式(一种很短的写方法的办法,后面会讲)比 Java 更早引入,还有 async/await 异步语法(让程序边等边干别的,后面会讲)。
  • Python:上手最简单,多用在数据分析和快速脚本,但性能弱一些;C# 是强类型语言(每个变量的类型定好后就不能乱装别的数据),更适合做大型、高性能的项目,多人协作也好维护。

6适合初学者吗

完全适合:

  1. 语法清楚,代码结构整齐,坑比 C++ 少。
  2. 工具齐全,用 Visual Studio 或 VS Code,代码补全、错误提示、调试都有。
  3. 资料多,微软官方文档一直在更新,中文教程也很多。
  4. 用的地方多,企业开发、游戏、金融系统都需要 C# 工程师。

从第一个 Hello World,到每天上亿次访问的大系统,都能用 C# 来写。

7核心功能

  1. 布尔条件:做判断,决定程序往哪条路走。
  2. 自动垃圾回收:不再使用的对象占的内存由运行时自动释放,不容易内存泄漏。
  3. 标准库:文件、网络、数据结构、加密,拿来就用。
  4. 程序集版本控制(程序集就是编译出来的 .exe 或 .dll 文件):组件可以单独打包、部署和管理版本。
  5. 属性和事件:把数据封装好,用事件来驱动程序。
  6. 委托:实现回调(把一个方法交给别人,让它在合适的时候调用),让各部分代码少一些互相依赖。
  7. 泛型:写一份类型安全(类型对不上编译器会报错)的通用代码,到处复用。
  8. 索引器:让对象像数组一样用下标访问。
  9. 条件编译:按编译符号(自己定义的开关名)决定哪些代码参与编译,比如区分开发版和正式版。
  10. 多线程(同时做几件事):配合 async/await,写出不卡顿的程序。
  11. LINQ(在 C# 里查询数据的写法)和 Lambda 表达式:用很少的代码查询和处理集合、数据库、XML。
  12. 和 Windows、.NET 生态紧密配合,同时能跨平台部署。

其中属性、委托、事件、泛型、索引器、多线程,后面都有专门的章节。

8小结

  • C# 是微软做的面向对象语言。
  • C# 代码编译后在 .NET 上运行,.NET 负责执行代码、管理内存,还带一大堆现成类库。
  • 现在的 .NET 能在 Windows、macOS、Linux 上运行,C# 用途很广。

下一节:写 C# 之前,电脑上要先装些什么?

检查题

5 道,选完马上告诉你对不对。

  1. 1C# 是哪家公司开发的?

  2. 2关于 C# 和 .NET,哪句对?

  3. 3谁负责执行代码、管理内存?

  4. 4现在的 .NET 能在哪些系统上运行?

  5. 5和 C/C++ 比,C# 的特点是?