C#中int与Int32关系揭秘
其实,关于C#中的int与Int32的关系,真的是没什么好说的。
我们都知道,int关键字是 System 命名空间中的预定义类型System.Int32的别名。
在.NET Framework中,这样的关键字还有很多,如short关键字是System.Int16的别名。更多关键字说明可参考:
http://technet.microsoft.com/zh-cn/magazine/ya5y69ds(VS.90).aspx
MSDN上说,C# 类型的关键字及其别名可以互换。下面的两行代码完全等价。
int a = 0;
Int32 b=0;
对于这一点,我们可以查看其中间代码来确认,两者生成的中间代码如下:
int32 a
int32 b
从这一点也可以看出int关键字最终还是被翻译成了Int32 。
另外,我们在代码中通过F12查看int关键字的定义,会得到int的定义如下:
你看,还是Int32吧。所以说,int与Int32就是一回事。
那么为Int32指定一个别名,这样有什么好处呢?
从定义中,我们还可以发现:Int32被定义为结构体,结构体中包含一些方法。这些方法包括为比较该类型的实例、将实例值转换为它的 String表示形式以及将数字的 String表示形式转换为该类型的实例提供了相应的方法。
具体方法介绍,参考MSDN说明:
http://msdn.microsoft.com/zh-cn/library/system.int32_methods(v=vs.90).aspx
这样一来,所有的基本类型都可以看做是支持某些方法的类了。
开发过程中,我们可以使用熟悉的int关键字来定义整型数据(简单而熟悉),同时还可以使用Int32中的一些方法来处理数据(功能补充)。
如下面代码所示:
int d = 0;
string e=d.ToString();
实例中,使用int关键字声明整型变量d,接着调用Int32的ToString()方法将整型变量d 转换成字符串。
要是大家以前做过C开发,就理解成是在以前C关键字int的基础上增加了一些方法而已(不严谨,帮助理解而已)。
那么我们在开发中,可不可以为类型(系统类型和自定义类型)定义别名呢?
是可以的,我们可以使用using指令来定义类型别名。
具体说明,请参考MSDN:http://msdn.microsoft.com/zh-cn/library/sf0df423(v=vs.80).aspx
但是,在C#中不支持typedef关键字,这点需要注意。当然,我们可以通过一些变通方法在C#中来实现typedef的功能。关于这点,可以阅读帖子《typedef in C#》http://www.codeproject.com/Questions/141385/typedef-in-C
就写作么多了,。
C#中int与Int32关系揭秘相关推荐
- java integer == int_Java中int和Integer的区别详解
1.Java 中的数据类型分为基本数据类型和复杂数据类型 int是前者>>integer 是后者(也就是一个类) 2.初始化时>> int i =1; Integer i= n ...
- Java中int和Integer的区别
int 是基本类型,直接存数值 integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者>>integer 是后者(也就是一个 ...
- JAVA中int 是什么意思,java中int和Integer什么区别
java中int和Integer的区别 一看就懂 int 是基本类型,直接存数值 integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前 ...
- Java中int和short的取值范围_java中short、int、long、float、double取值范围
1. 基本类型:int 二进制位数:32 包装类:java.lang.Integer 最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方) 最大值:Integer. ...
- 一起谈.NET技术,C#中int和System.Int32理解总结
最近园里的TeamOne写了一篇<[C#] int与System.Int32有什么区别>,发现里面有不少精彩的评论,所以忍不住想这篇文章总结一下: 本文的主要参考资料: 1.<理解C ...
- 在 C# 中,(int) ,Int32.Parse() 和 Convert.toInt32() 三种方法的区别
在 C# 中,(int),Int32.Parse() 和 Convert.toInt32() 三种方法有何区别? int 关键字表示一种整型,是32位的,它的 .NET Framework 类型为 S ...
- Golang中int, int8, int16, int32, int64和uint区别
Golang中int, int8, int16, int32, int64和uint区别 前言 测试 结果 结论 总结 前言 在学习go语言时,做算法题会很经常遇到go语言的各种int类型,为什么会有 ...
- C# 中int short Int16 Int32 Int64详解
Java中没有Int32,Int64,,只有int,short,long Java中int就代表Int32 ,short就代表Int16,long就代表Int64 首先,几个基本的关键字: Int16 ...
- C#中int short Int16 Int32 Int64区别
Java中没有Int32,Int64,,java中只有int,short,long Java中int就代表Int32 ,short就代表Int16,long就代表Int64 首先,几个基本的关键字: ...
最新文章
- 优化应用启动时的体验
- IPad开发之有帮助的开发工具
- 您现在只需免费与相机捆绑即可购买一个PSVR
- 国行iphone第一次安装APP网络状况
- 记 QT 应用开发中的一个二进制兼容性问题
- Linux学习总结(61)——Ansible 快速入门学习
- h5 监听浏览器被切换到后台或者手机锁屏再次唤起事件
- 无人机如何通过GB28181协议接入视频会议
- 致敬科比:科比投篮数据可视化
- windsns社交门户系统源码v1.0-掌上移动社交类SNS网站系统源码
- t3软件怎么生成报表_用友T3怎么生成财务报表-
- java 按 大写字母_用大写字母拆分字符串
- cesium添加单张图片
- java.io.FileNotFoundException: /storage/emulated/0/ ……: open failed: EACCES (Permissi
- TMS320c6713的Flash引导装载系统设计
- 开发不到新客户,你知道是问题出在哪吗?
- JAVA多态机制简述
- InDesign grep当前目录_InDesign 中的已修复问题
- 国家开放大学《国际经济法》第五章 世界贸易组织多边贸易体制 边学边练
- WIN10电脑右下角出现红叉子的问题?
热门文章
- 【板栗糖GIS】arcmap—如何将地图导出为pdf或者图片
- 等额本金.等额本息.房贷计算
- 西电新时代网信院特色通信原理Assignment(自用)
- 杰哥不要-BERT-WMM-全词遮罩填充
- 学计算机需要右脑还是左脑,心理学:你第一眼看到的是什么?看出你左脑发达还是右脑发达!...
- java面试-汇总篇
- bdm导入mysql_dblink insert 远程SQL Server数据库是报ORA-02063错误
- 调用hcm接口同步员工数据更新员工信息没有同步到bdm
- 仓储物流中心必不缺少的自动分拣系统(Automatic Sorting System)
- 【计算方法】不动点迭代法(非线性方程的求解)