Skip to Content
C# 12 核心要点
book

C# 12 核心要点

by Joseph Albahari
May 2025
Intermediate to advanced
1086 pages
14h 54m
Chinese
O'Reilly Media, Inc.
Content preview from C# 12 核心要点

第 1 章. C# 和 .NET 简介

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

C# 是一种通用、类型安全、面向对象的编程语言。该语言的目标是提高程序员的工作效率。为此,C# 平衡了简洁性、表现力和性能。从第一版开始,该语言的首席架构师就是 Anders Hejlsberg(Turbo Pascal 的创建者和 Delphi 的架构师)。C# 语言是平台中立的,可与一系列特定平台的运行时配合使用。

面向对象

C# 是面向对象范式的丰富实现,其中包括封装继承多态性。封装是指在对象周围创建一个边界,将其外部(公共)行为与内部(私有)实现细节分开。从面向对象的角度来看,C# 有以下显著特点:

统一类型系统
C# 的基本构件是数据和函数的封装单元,称为类型。C# 有一个统一的类型系统,所有类型最终都共享一个共同的基本类型。这意味着所有类型,无论是代表业务对象还是原始类型(如数字),都共享相同的基本功能。例如,任何类型的实例都可以通过调用其ToString 方法转换为字符串。
类和接口
在传统的面向对象范例中,类是唯一的类型。在 C# 中,还有其他几种类型,接口就是其中之一。接口就像一个不能保存数据的类。这意味着它只能定义行为(而不能定义状态),这就允许了多重继承以及规范和实现之间的分离。
属性、方法和事件
在纯粹的面向对象范式中,所有函数都是方法。在 C# 中,方法只是函数成员的一种,它还包括属性事件(还有其他)。属性是封装了对象状态的函数成员,如按钮的颜色或标签的文本。事件是简化对象状态变化的函数成员。

虽然 C# 主要是一种面向对象的语言,但它也借鉴了函数式编程范式,特别是

函数可被视为值
使用委托,C# 允许将函数作为值传递给其他函数或从其他函数传递。
C# 支持纯净模式
函数式编程的核心是避免使用值会发生变化的变量,而采用声明式模式。C# 具有帮助实现这些模式的关键特性,包括在运行中编写 "捕获 "变量的未命名函数(Lambda 表达式)的能力,以及通过查询表达式执行列表或反应式编程的能力。C# 还提供了记录功能,可以轻松编写不可变(只读)类型。

安全类型

C# 主要是一种类型安全语言,这意味着类型的实例只能通过它们定义的协议进行交互,从而确保每个类型的内部一致性。例如,C# 可以防止将字符串类型当作整数类型进行交互。

更具体地说,C# 支持静态类型,这意味着该语言在编译时执行类型安全。这是运行时类型安全的补充。

静态类型在程序运行前就能消除大量错误。它将运行时单元测试的负担转移到了编译器上,以验证程序中的所有类型都能正确匹配。这使得大型程序更易于管理、更可预测、更健壮。此外,静态类型允许 Visual Studio 中的 IntelliSense 等工具帮助你编写程序,因为它知道给定变量是什么类型,从而知道你可以调用该变量的哪些方法。此类工具还能识别程序中使用变量、类型或方法的所有地方,从而进行可靠的重构。

备注

C# 还允许通过dynamic 关键字对部分代码进行动态类型化。不过,C# 仍然是一种以静态类型为主的语言。

C# 也被称为强类型语言,因为它的类型规则是严格执行的(无论是静态还是运行时)。例如,除非首先显式地将浮点数转换为整数,否则不能调用设计为接受浮点数的整数函数。这有助于防止错误的发生。

内存管理

C# 依靠运行时来执行自动内存管理。通用语言运行时有一个垃圾回收器,它作为程序的一部分执行,回收不再被引用的对象的内存。这样,程序员就不必为对象明确地去分配内存,从而消除了 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Programming C# 12

Programming C# 12

Ian Griffiths
C# 12 in a Nutshell

C# 12 in a Nutshell

Joseph Albahari
C# 6 for Programmers, Sixth Edition

C# 6 for Programmers, Sixth Edition

Paul Deitel, Harvey Deitel
Head First C#, 4th Edition

Head First C#, 4th Edition

Andrew Stellman, Jennifer Greene

Publisher Resources

ISBN: 9798341657038