其实,关于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关系揭秘相关推荐

  1. java integer == int_Java中int和Integer的区别详解

    1.Java 中的数据类型分为基本数据类型和复杂数据类型 int是前者>>integer 是后者(也就是一个类) 2.初始化时>> int i =1; Integer i= n ...

  2. Java中int和Integer的区别

    int 是基本类型,直接存数值 integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者>>integer 是后者(也就是一个 ...

  3. JAVA中int 是什么意思,java中int和Integer什么区别

    java中int和Integer的区别  一看就懂 int 是基本类型,直接存数值 integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前 ...

  4. Java中int和short的取值范围_java中short、int、long、float、double取值范围

    1. 基本类型:int 二进制位数:32 包装类:java.lang.Integer 最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方) 最大值:Integer. ...

  5. 一起谈.NET技术,C#中int和System.Int32理解总结

    最近园里的TeamOne写了一篇<[C#] int与System.Int32有什么区别>,发现里面有不少精彩的评论,所以忍不住想这篇文章总结一下: 本文的主要参考资料: 1.<理解C ...

  6. 在 C# 中,(int) ,Int32.Parse() 和 Convert.toInt32() 三种方法的区别

    在 C# 中,(int),Int32.Parse() 和 Convert.toInt32() 三种方法有何区别? int 关键字表示一种整型,是32位的,它的 .NET Framework 类型为 S ...

  7. Golang中int, int8, int16, int32, int64和uint区别

    Golang中int, int8, int16, int32, int64和uint区别 前言 测试 结果 结论 总结 前言 在学习go语言时,做算法题会很经常遇到go语言的各种int类型,为什么会有 ...

  8. C# 中int short Int16 Int32 Int64详解

    Java中没有Int32,Int64,,只有int,short,long Java中int就代表Int32 ,short就代表Int16,long就代表Int64 首先,几个基本的关键字: Int16 ...

  9. C#中int short Int16 Int32 Int64区别

    Java中没有Int32,Int64,,java中只有int,short,long Java中int就代表Int32 ,short就代表Int16,long就代表Int64 首先,几个基本的关键字: ...

最新文章

  1. 优化应用启动时的体验
  2. IPad开发之有帮助的开发工具
  3. 您现在只需免费与相机捆绑即可购买一个PSVR
  4. 国行iphone第一次安装APP网络状况
  5. 记 QT 应用开发中的一个二进制兼容性问题
  6. Linux学习总结(61)——Ansible 快速入门学习
  7. h5 监听浏览器被切换到后台或者手机锁屏再次唤起事件
  8. 无人机如何通过GB28181协议接入视频会议
  9. 致敬科比:科比投篮数据可视化
  10. windsns社交门户系统源码v1.0-掌上移动社交类SNS网站系统源码
  11. t3软件怎么生成报表_用友T3怎么生成财务报表-
  12. java 按 大写字母_用大写字母拆分字符串
  13. cesium添加单张图片
  14. java.io.FileNotFoundException: /storage/emulated/0/ ……: open failed: EACCES (Permissi
  15. TMS320c6713的Flash引导装载系统设计
  16. 开发不到新客户,你知道是问题出在哪吗?
  17. JAVA多态机制简述
  18. InDesign grep当前目录_InDesign 中的已修复问题
  19. 国家开放大学《国际经济法》第五章 世界贸易组织多边贸易体制 边学边练
  20. WIN10电脑右下角出现红叉子的问题?

热门文章

  1. 【板栗糖GIS】arcmap—如何将地图导出为pdf或者图片
  2. 等额本金.等额本息.房贷计算
  3. 西电新时代网信院特色通信原理Assignment(自用)
  4. 杰哥不要-BERT-WMM-全词遮罩填充
  5. 学计算机需要右脑还是左脑,心理学:你第一眼看到的是什么?看出你左脑发达还是右脑发达!...
  6. java面试-汇总篇
  7. bdm导入mysql_dblink insert 远程SQL Server数据库是报ORA-02063错误
  8. 调用hcm接口同步员工数据更新员工信息没有同步到bdm
  9. 仓储物流中心必不缺少的自动分拣系统(Automatic Sorting System)
  10. 【计算方法】不动点迭代法(非线性方程的求解)