A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

C#认可的基础数据类型并没有内置于C#语言中,而是内置于.net Framework中,这句话怎么解释啊?

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

5 个回复

倒序浏览
1. .Net框架的意义就在于只用统一的命令集支持任何的编程语言;
2. 正如微软WEB服务中心的成组产品经理John Montgomery所说:"只需简单地一用, .NET框架便可消除各种异类框架之间的差异,将它们合并为一个整体;
3. 整个C#的类模型是建立在.NET虚拟对象系统(Visual Object System, VOS)的基础之上,其对象模型是.NET基础框架的一部分,而不再是其本身的组成成分。

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
在C#编程基础的传智播客.NET基础提高视频(2011新版)-03基础知识.zip有讲到一点:

你的程序由C#编写,将由C#编译器转成MSIL(微软中间语言 Microsoft Intermediate Language), .exe文件里存的是中间语言,中间语言Windows是无法运行的,CLR(公共语言运行时Common Language Runtime)负责执行程序.
其后又讲到   .NET Framework

其中CLR包含:
CLS:公共语言规范 Common Language Specification
CTS:通用类型系统 Common Type System
JIT:即时编译器 Just In Time


C#的预定义类型并没有内置于语言中,而是内置于.NET Framework中。.NET使用通用类型系统(CTS)定义了可以在中间语言(IL)中使用的预定义数据类型,所有面向.NET的语言都最终被编译为 IL,即编译为基于CTS类型的代码。
(CTS)定义了可以在中间语言(IL)中使用的预定义数据类型:
CTS定义了一个类型库,无论时Visual Basic.NET还是c#,他们的类型系统大体类似。因此.NET将各种不同的编程语言的数据类型进行抽象,就有了CTS。虽然每种编程语言都有自己的类型系统,但编译后都会转成CTS类型。不同的语言编写的程序直间可以相互操作。Vb的integer而C#的System.Int32都对应CTS的System.Int32类型。
CTS类型主要分成两大类:引用类型和值类型,这两个类型可以相互转换,方法是装箱和拆箱。

有图的可知,引用类型直接继承自Object对象,值类型继承自ValueType对象,而ValueType继承自Object对象。所以CTS类型最终继承自Object。

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
就比如你声明一个int 类型的数据时,声明的实际上是.NET结构System.Int32的一个实例。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马