C/#(读作“See Sharp”)是一种新式编程语言,不仅面向对象,还类型安全。 开发人员利用 C/# 能够生成在 .NET 中运行的多种安全可靠的应用程序。 C/# 源于 C 语言系列,C、C++、Java 和 JavaScript 程序员很快就可以上手使用。
C/# 是面向对象的、面向组件的编程语言。 C/# 提供了语言构造来直接支持这些概念,让 C/# 成为一种非常自然的语言,可用于创建和使用软件组件。 自诞生之日起,C/# 就添加了支持新工作负载和新兴软件设计实践的功能。 C/# 本质上是面向对象的语言。_/* 你需要定义类型及其行为。
C/# 程序在 .NET 上运行,而 .NET 是名为公共语言运行时 (CLR) 的虚执行系统和一组类库。 CLR 是 Microsoft 对公共语言基础结构 (CLI) 国际标准的实现。 CLI 是创建执行和开发环境的基础,语言和库可以在其中无缝地协同工作。
用 C/# 编写的源代码被编译成符合 CLI 规范的中间语言 (IL)。 IL 代码和资源(如位图和字符串)存储在扩展名通常为 .dll 的程序集中。 程序集包含一个介绍程序集的类型、版本和区域性的清单(metadata)。
执行 C/# 程序时,程序集将加载到 CLR。 CLR 会直接执行实时 (JIT) 编译,将 IL 代码转换成本机指令。 CLR 可提供其他与自动垃圾回收、异常处理和资源管理相关的服务。 CLR 执行的代码有时称为“托管代码”(而不是“非托管代码”),被编译成面向特定平台的本机语言。
语言互操作性是 .NET 的一项重要功能。 C/# 编译器生成的 IL 代码符合公共类型规范 (CTS)。 通过 C/# 生成的 IL 代码可以与通过 .NET 版本的 F/#、Visual Basic、C++ 或其他 20 多种与 CTS 兼容的任何语言所生成的代码进行交互。 一个程序集可能包含多个用不同 .NET 语言编写的模块,且类型可以相互引用,就像是用同一种语言编写的一样。
为了一次编译,不同平台使用,加一层中间层,更为灵活。
首先这要从系统层面出发,Windows 系统分为 32 与 64 位,而系统又分 Windows、Macos、Linux、Unix,未来也可能出现更多的系统。
这么多的系统如何和做到一次编译,在多平台运行呢?这就是二次编译,C/# 源代码被编译成中间语言 (IL),存储在扩展名通常为 .dll 的程序集中, 程序集包含一个介绍程序集的类型、版本和区域性的清单(metadata)。
这样在不同的品台,同一份编译的中间语言,通过 CLR 转换为不同平台可执行机器指令,在不同平台执行。所以说,为了一次编译,不同平台使用,加一层中间层,更为灵活。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_46785144/article/details/120602121
内容来源于网络,如有侵权,请联系作者删除!