找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2299|回复: 12

C#数据类型转换和数据类型别名

 火.. [复制链接]
  • 打卡等级:常驻代表
  • 打卡总天数:34
  • 打卡月天数:6
  • 打卡总奖励:9027
  • 最近打卡:2025-12-17 23:15:51

2823

主题

541

回帖

2万

积分

管理员

积分
22569
发表于 2021-4-16 21:50:57 | 显示全部楼层 |阅读模式
细心的小伙伴会发现,在我们编写代码的过程中,当我们声明一个整形变量输入int的时候,会看到:


这个位置是代码提示,不过……咦~这里的int16、int32是啥?也是数据类型吗,为啥没学过。
我们的C#是区分代码大小写的,但是有时候有些小伙伴会发现,在声明字符串类型的时候,既可以使用string也可以使用String,这两种声明方式有区别码?


之前在介绍Hello World这个控制台应用程序的时候提到过,我们使用的Console是别人写的代码,由于这样的代码存储在System这个命名空间中,所以我们写代码的时候,要在开头填上using System,用以在我们代码运行之前先将我们要引用的代码提前加载在程序中,以供应我们随时调用。
但是类似Console.WriteLine()这样的代码是指令,它做了很多动作,比如开启黑色对话框,并将对应内容显示出来,这一连串动作也对应着代码,只是这样的代码不是用C#写的,它属于.NET类库中的内容。
就是说,我们使用Console.WriteLine()的时候,是用C#代码调用.NET类库,这Console.WriteLine()不属于C#!!!
我们知道,我们学习的C#是运行在.NET(dot net)之上的,这个.NET由三部分组成:
CLR:Common Language Runtime 执行环境(包括内存管理、代码执行、异常处理等)
编程工具:涵盖了编码和调试需要的一切:包含:VisualStudio集成开发环境、.NET兼容的编译器如:C#、VB、JScript和托管的C++等
BCL:Base Class Library,基类库,可提供给 .NET所有语言使用,这里划重点是“提供给 .NET所有语言使用”的哦 !
那么也就是说,在我们使用Console.WriteLine()是在调用公共类库的内容。这也就相当于,我们可以使用各种型号,各种屏幕,各种大小的电视机,但是所看的电视剧都是通过电视台发出的信号,而并不属于某个电视。
我们C#编写出的代码是不能直接执行的,需要编译成中间代码,然后通过CLR来运行。
那么也就是说,我们的Hello World这个程序是用C#和公共类库混写的,编译的时候,是将C#代码和公共类库代码一起编译成了中间代码。
那么这个又和我们所说的数据类型有什么关系呢?让我们简单做个实验,我们将代码第一段的using System去掉,然后再输入Int看代码提示有啥变化没:


这时候我们发现,当去掉using System的时候,之前代码提示中的Int16、int32都不见了。


而且大写S开头的String也报错了。
这就说明我们看到的这些Int16、int32、String等都属于System。
在using System存在的时候,我们写的:
Int32 a;
String str;
都是在调用公共类库来声明变量。
那么我们的C#也可以声明变量,公共类库也可以声明变量,这不是重复了嘛?
在这里直接给大家结论,其实我们使用的int、double、string都是C#在.NET公共类库中的别名:
int是System.Int32的别名
double是System.Double的别名
string是System.String的别名
之所以我们可以直接使用Int32、String的原因是在代码的开头我们引入了对应的命名空间。
我们在写C#代码的时候,是可以直接调用.NET公共类库中的内容的,只是.NET公共类库代码太长了,用C#中的别名代替。
但是要注意的一点是C#就其本身而言是一种编程语言,尽管它是用于生成面向.NET环境的代码,但它本身不是.NET的一部分。我们学习的数据类型,比如int、string等等,都属于C#这门编程语言的,只是恰巧它们又是公共类库对应数据类型的别名而已。
所以在我们的代码中声明变量
int a=11;
System.Int32 a=11;
Int32 a=11;
这三句话是等价的。
string str;
String str;
System.String str;
也都是等价的
屏幕前的你,明白了吗!






工控课堂 www.gkket.com

0

主题

105

回帖

469

积分

注册会员

积分
469
发表于 2021-4-16 21:50:58 | 显示全部楼层
我只是路过打酱油的。
工控课堂 www.gkket.com

0

主题

110

回帖

342

积分

注册会员

积分
342
发表于 2021-4-17 06:45:01 | 显示全部楼层
楼主加油,我们都看好你哦。
工控课堂 www.gkket.com

0

主题

79

回帖

328

积分

注册会员

积分
328
发表于 2025-11-20 01:46:56 | 显示全部楼层
不请自来,只为说一句:太精彩了!
工控课堂 www.gkket.com

0

主题

86

回帖

141

积分

新手上路

积分
141
发表于 2025-11-20 01:54:41 | 显示全部楼层
不请自来,就想夸一句:太顶了!
工控课堂 www.gkket.com

0

主题

84

回帖

124

积分

新手上路

积分
124
发表于 2025-11-20 01:57:57 | 显示全部楼层
楼主太会说了,字字句句都在理
工控课堂 www.gkket.com

0

主题

134

回帖

255

积分

注册会员

积分
255
发表于 2025-11-20 01:58:19 | 显示全部楼层
水个经验,支持楼主,加油呀
工控课堂 www.gkket.com

0

主题

83

回帖

130

积分

新手上路

积分
130
发表于 2025-11-20 01:59:01 | 显示全部楼层
同款经历!我当初也这么过来的😂
工控课堂 www.gkket.com

0

主题

88

回帖

133

积分

新手上路

积分
133
发表于 2025-11-20 01:59:42 | 显示全部楼层
这评论区卧虎藏龙,个个都是人才!
工控课堂 www.gkket.com

0

主题

117

回帖

255

积分

注册会员

积分
255
发表于 2025-11-20 02:00:04 | 显示全部楼层
楼主太会说了,字字句句都在理~
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-23 04:19 , Processed in 0.080397 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表