写给笨蛋徒弟的学习手册(3)—C#中15个预定义数据类型

在C#中学习中,你会很早的遇到预定义数据类型这个概念,但你有没有仔细想过它存在的意义?正所谓“存在即合理”,预定义数据类型的存在目的主要有俩个方面,一是为了增加程序的安全性,同时减轻编译器负担,加快编译速度;二是体现了语言互操作性中强数据类型的重要性。

首先,我们需要了解,C#中的预定义数据类型并非内置于C#中,而是包含于.NET中,这样做的原因,也体现出了微软对.NET框架所抱有的期望,这.NET框架下,不仅仅有C#一种高级语言,还有如VB.NET(从VB6升级到VB .NET 2002开始)、VC++.NET、Visual F#等。把预定义数据类型内置于.NET框架中,为语言的互操作打下了基础。而在.NET中,预定义数据类型的实现是通过CTS(通用类型系统)和CLS(公共语言规范)来实现的。 其中CTS的作用在于将其他语言的数据类型转换为预定义数据类型,而CLS的作用在于使编译器可以识别相应的数据类型,简单的来说,CTS是媒介,CLS是识别。

其次,我们需要知道,预定义数据类型主要分为俩种,即值类型和引用类型。它们之间的差距在与在内存中的存储位置,值类型存储在内存的栈上,而引用类型存储在内存的托管堆中,记得我和你讲的,.NET的一大特色是托管代码吗?这样做的目的在于,面向对象的语言允许用户自定义数据类型(用户自定的类Class),通过托管可以将C#转化为中间语言(IL),再由中间语言编译为机器代码(计算机可以识别的二进制编码0和1),引用类型的编译过程即为C#—>IL—>机器码,而值类型仅仅只有一个值(如int i = 1;),所以可以直接被转换为机器码。

最后,我们来认识15个预定义数据类型,其中13个为值类型,2个为引用类型。值类型又分为五类,有整数类型、浮点类型、字符类型、布尔类型以及decimal类型:

整数类型有:sbyte、short、int、long,byte、ushort、uint、ulong,其中byte为特例,byte代表8位无符号整数,范围为0~255,而sbyte代表8位有符号整数范围为-128~127,其他u-为无符号整数。

浮点类型有:float和double。

对于整数类型和浮点类型,会涉及到类型转换的问题(将int转为float等),在下一篇将讲到显式和隐式转换问题。 

字符类型有:char,字符类型有一个很重要的应用是转义字符,也将在下一篇将讲到。

布尔类型有:bool,布尔类型的值只能为true和false,不可以用0和1来表示。 

decimal类型有:decimal,decimal类型主要用于高精度的浮点表示,它可以表示小数点后28位,所以适合财务计算。

 

ps:汪汪汪汪汪汪~ 

 

转载于:https://www.cnblogs.com/DaiLeGeMeng/p/6396121.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值