我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C#中间语言和元数据是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C#中间语言和元数据是什么

这篇文章主要为大家展示了“C#中间语言和元数据是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#中间语言和元数据是什么”这篇文章吧。

NGWS Runtime

NGWS和NGWS Runtime为你提供了一种运行时环境。该运行时管理执行代码,并提供了使编程更容易的服务。只要你的编译器支持这种运行时,你就会从这种受管理的执行环境中得益。

你猜测C#编译器支持NGWS runtime很正确,但是不仅它支持NGWS runtime,VB和C++也支持。这些为支持运行时所创建的代码称作"受管代码"(managed code)。以下是你的应用程序从NGWS runtime那里所得到的利益:
◆交叉语言集成(通过通用语言规范)
◆自动内存管理(垃圾收集)
◆交叉语言异常处理(统一展开)
◆增强安全(包括类型安全)
◆版本支持("DLL地狱"终结者)
◆组件交互简化模式

因NGWS runtime 要提供了所有的这些好处,编译器必须把元文件和受管代码一起发出。元文件描述代码中的类型,它和你的代码存在一起(与PE类似——PE为可变位执行文件)

正如你从很多种交叉语言功能所看到的,NGWS runtime主要是关于高度集成交叉多异编程语言(tight integration across multiple different programming languages)。这种支持可达到允许你从一个VB对象派生出一个C#类的程度(我后面会给出要讨论的文章)。

C#程序员将会喜欢的一个功能是,他们不必担心内存管理-也就是说不必担心臭名昭著的内存泄漏。NGWS runtime提供了内存管理,当对象和变量的生命期结束(不再被引用)时,垃圾收集器释放它们。我真的喜欢这个功能,因为在COM中的内存管理一直是我的一块心病。

应该鼓励配置一个管理应用程序或者组件。因为管理应用程序含有元数据文件,NGWS runtime可以利用这些信息,以确保你的应用程序具有它所需的各种规定版本。所产生的明显效果为,由于你的代码没有相互之间的依赖,很少可能出现中断。

这章余下来讨论NGWS runtime的C#中间语言和元数据,直到你的C#应用程序能执行为止。

C#中间语言和元数据

由C#编译器生成的受管代码并不是原始代码,但它是中间语言代码。这种中间语言代码自身变成了NGWS runtime的受管执行进程的入口。中间语言代码明显的优势在于它是CPU无关的,这也意味着,你要用目标机器上的一个编译器才能把中间语言代码转换成原始代码。

尽管中间语言代码由编译器产生,但它并不是编译器提供给运行时仅有的东西。编译器同样产生有关你代码的元数据,它告诉运行时有关你代码的更多的东西,例如各种类型的定义、各种类型成员的签名以及其它数据。基本上,元数据是类型库、注册表内容和其它用于COM的信息。尽管如此,元数据还是直接和执行代码合并在一起,并不处在隔离的位置。

C#中间语言和元数据存放于扩展了PE格式的文件中(PE格式用于。exe和。dll文件)。当这样的一个PE文件被装载时,运行时从文件中定位和分离出中间语言和元数据.

在进一步说明之前,我想给你已有的中间语言指令的简短目录。尽管它不是一个完整的清单,也不需要你熟记和理解,但是它列出了你所必需的、C#程序所基于的知识基础。
◆算术和逻辑操作符
◆控制流
◆直接内存访问
◆堆栈操作
◆参数和局部变量
◆堆栈分配
◆对象模式
◆实例类型值
◆临界区
◆数组
◆分型位置
◆即时编译器(JITters)

以上是“C#中间语言和元数据是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C#中间语言和元数据是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C#中间语言和元数据是什么

这篇文章主要为大家展示了“C#中间语言和元数据是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#中间语言和元数据是什么”这篇文章吧。NGWS RuntimeNGWS和NGWS Runtim
2023-06-17

go语言和c语言是什么

这篇文章主要介绍了go语言和c语言是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇go语言和c语言是什么文章都会有所收获,下面我们一起来看看吧。Go(又称Golang)是Google开发的一种静态强类型、编
2023-07-04

c语言数据结构是什么

c语言数据结构是指将数据按照一定的方式组织和存储的方法。它是计算机科学中的重要概念,用来描述和解决实际问题中的数据组织和处理问题。数据结构可以分为线性结构和非线性结构。线性结构包括数组、链表、堆栈和队列等,而非线性结构包括树和图等。C语言是
2023-08-09

C语言中数据存储方式是什么

这篇文章主要介绍“C语言中数据存储方式是什么”,在日常操作中,相信很多人在C语言中数据存储方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言中数据存储方式是什么”的疑惑有所帮助!接下来,请跟着小编
2023-06-08

c语言中+=和-=是什么意思

c 语言中的 += 和 -= 运算符是赋值运算符,允许将变量的值加上或减去一个值的快捷方式。+= 运算符将变量的值增加指定的量,而 -= 运算符将变量的值减少指定的量。在 C 语言中 += 和 -= 运算符的作用在 C 语言中,+= 和
c语言中+=和-=是什么意思
2024-04-28

go和c是什么语言

Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言;Go语言语法与C相近,但功能上有内存安全、GC(垃圾回收)、结构形态及CSP-style并发计算。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发;C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
2023-05-14

c语言中?:是什么

在 c 语言中,?: 是条件运算符,又称三元运算符,可根据条件布尔表达式在两个值之间进行选择。其语法为:condition ? value_if_true : value_if_false。如果 condition 为真,则返回 value
c语言中?:是什么
2024-04-13

c语言中::是什么

c++kquote>c++ 中的双冒号 (::) 用于:1. 全局命名空间访问;2. 命名空间限定;3. 枚举常量访问;4. 静态方法调用;5. 基类引用。C++中的双冒号 (::)在 C++ 中,双冒号 (::) 运算符具有以下用途:
c语言中::是什么
2024-04-13

C语言中数组和指针,内存之间的关系是什么

小编给大家分享一下C语言中数组和指针,内存之间的关系是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先论证一维数组和一级指针之前的关系,我们常常使用一级指针
2023-06-29

c语言中s和c的区别是什么

c语言中s和c的区别在于输出数据类型:s用于输出字符串,而c用于输出单个字符。此外,s支持宽度指定和精度指定,而c不支持;s支持空格填充,而c不支持。C语言中s和c的区别s和c是C语言中常用的格式说明符,用于分别输出字符串和字符。它们之间
c语言中s和c的区别是什么
2024-05-12

go语言中元组是什么

元组是固定长度不可变的顺序容器(元素序列),go语言中没有元组类型,数组就相当于元组。在go语言中,数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成;数组的声明语法为“var 数组变量名 [元素数量]Type”。
2023-05-14

C语言中的时间函数clock()和time()有什么用

小编给大家分享一下C语言中的时间函数clock()和time()有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!时间函数在编写代码的时候会经常用到,下面就来
2023-06-29

C语言基本数据类型是什么

这篇文章主要讲解了“C语言基本数据类型是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言基本数据类型是什么”吧!1.C 语言包含的数据类型如下图所示:2.C语言的基本数据类型shor
2023-06-22

c语言数组添加元素的方法是什么

在C语言中,数组的大小是固定的,不能直接添加元素。如果需要添加元素,可以考虑使用动态内存分配的方法,例如使用malloc函数动态分配内存,并使用realloc函数重新分配内存大小。以下是一个示例代码:#include
c语言数组添加元素的方法是什么
2024-03-14

c语言中while是什么

c语言的while循环结构用于在特定的条件满足时重复执行一段代码。它接收一个布尔条件作为参数,当条件为真时,将执行循环体并不断重新评估条件,直到条件为假,循环才会结束。while:C 语言中的循环结构while 语句是 C 语言中的一种循
c语言中while是什么
2024-05-12

c语言清空数组元素的方法是什么

在C语言中,清空数组元素的方法可以通过循环遍历数组并将元素赋值为0来实现。以下是一个示例代码:#include int main() {int arr[5] = {1, 2, 3, 4, 5};int i;for (i
c语言清空数组元素的方法是什么
2024-03-06

Java语言和C++语言的差异是什么

本篇内容主要讲解“Java语言和C++语言的差异是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java语言和C++语言的差异是什么”吧!   Java采用了C及C++的语法格式,对于学习过
2023-06-03

c语言中size是什么

size 是 c 语言中用于获取数据类型大小的运算符,返回 unsigned int 类型的字节数。其作用为:分配内存;数据处理;数据对齐。C 语言中的 size size 是 C 语言中用于获取数据类型大小的运算符。它返回指定数据类型占
c语言中size是什么
2024-05-08

c语言中%s是什么

在 c 语言中,%s 是 printf 和 scanf 函數的格式说明符,用于字符串参数。在 printf 中,它打印字符串;在 scanf 中,它从输入中读取字符串。c语言中%s是什么在C语言的printf和scanf函数中,%s是一个
c语言中%s是什么
2024-05-12

c语言中%lf和lf是什么意思

c语言中%lf和lf都与浮点类型相关:%lf是printf()和scanf()函数中格式化双精度浮点数的格式说明符;lf是浮点数的类型后缀,用于指定浮点数为双精度类型,等价于double。%lf 和 lf 在 C 语言中的含义C 语言中,
c语言中%lf和lf是什么意思
2024-05-10

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录