C# 7.0 核心技术指南 (2):C#和.NET Framework 简介 1.2&1.3

阅读数:7 2019 年 11 月 30 日 23:15

C# 7.0核心技术指南(2):C#和.NET Framework简介 1.2&1.3

(类型安全性)

内容简介
本书前三章将集中介绍 C#语言。首先介绍基本的语法、类型和变量。而后会介绍一些高级的特性,如不安全代码以及预处理指令。如果你是 C#语言的初学者,请循序渐进地阅读这些章节。
其余各章则涵盖了.NET Framework 的核心功能,包括 LINQ、XML、集合、并发、I/O 和网络、内存管理、反射、动态编程、特性、安全、应用程序域和原生互操作性等主题。第 6 章和第 7 章是后续主题的基础,除这两章之外,其余各章可以按照需要以任何顺序阅读。LINQ 相关的三个章节好按顺序阅读。其中的一些章节需要一些并发相关的知识,这些知识将在第 14 章中介绍。

C#是一种类型安全(type-safe)的语言。这意味着类型的实例只能通过它们定义的协议进行交互,从而保证了每种类型的内部一致性。例如,C#不允许将字符串类型作为整数类型进行处理。

更具体地说,C#支持静态类型化(static typing),即在编译时会执行安全性检查。此外,在运行时也会同样执行类型安全性检查。

静态类型化能够在程序运行之前排除大量的错误。它将大量的运行时单元测试转移到编译器中,确保程序中所有类型之间都是相互适配的,使大型程序更易于管理、更具预测性并更加健壮。而且静态类型化可以借助一些工具,例如 Visual Studio 的 IntelliSense 来提供更好的编程辅助。因为它知道某个特定变量的类型,自然也知道该变量上能够调用的方法。

C#允许部分代码通过 dynamic 关键字来动态定义指定类型。然而,C#在大多数情况下仍然是一门静态类型化语言。

C#还是一门强类型语言(strongly typed language),因为它的类型规则(不论是静态还是运行时)非常严格。例如,不能用一个浮点类型的参数来调用一个接受整数类型参数的函数,必须显式将这个浮点数转换为整数。这可以防止编码错误。

强类型也是 C#代码能够在沙盒(sandbox)中运行的原因之一。沙盒环境中的所有安全性均由宿主控制。因此在沙盒中,用户无法越过类型规则而随意破坏对象的状态。


(内存管理)

C#依靠运行时来实现自动内存管理。公共语言运行时的垃圾回收器会作为程序的一部分运行,并负责回收那些不再被引用的对象所占用的内存,程序员无须显式释放对象的内存,从而避免诸如 C++ 等语言中错误使用指针而造成的问题。

C#并未抛弃指针,只是在大多数编程任务中是不需要使用指针的。对于性能优先的热点和互操作性,仍然可以在标记为 unsafe 的程序块内使用指针并进行显式内存分配。

C# 7.0核心技术指南(2):C#和.NET Framework简介 1.2&1.3

购书地址 https://item.jd.com/12681788.html?dist=jd

评论

发布