C#中int和System.Int32理解总结

C#中int和System.Int32理解总结

ID:44230110

大小:224.79 KB

页数:4页

时间:2019-10-19

C#中int和System.Int32理解总结_第1页
C#中int和System.Int32理解总结_第2页
C#中int和System.Int32理解总结_第3页
C#中int和System.Int32理解总结_第4页
资源描述:

《C#中int和System.Int32理解总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C#中int和System.Int32理解总结作者:hvddd來源:博客园发布时间:2010-08-2920:04阅读:661次原文链接全屏阅读『收藏1编辑点评:园里TeamOne写了一篇QC#]int与System.Int32有什么区别》,里而有不少楙彩的评论,作者忍不住想该篇文章进行了一个总结。最近园里的TeamOne写了一篇《「C#]int与Svstem.lnt32有什么区別》,发现里面有不少精彩的评论,所以忍不住想这篇文章总结一下:本文的主要参考资料:1.《理解C#中的System.Int32和int:并非鸡和鸡蛋》@Author:Dixin2.《『C#]int与System.In

2、t32有什么区别》@Author:TeamOne一.问题的来源MSDN说,int只不过是System」nt32的别名而已,也就是说:inti=l;Systeni.Int32i=l:应该是等价的,或者说毫无区別的。但在Dixin在用Reflector对.NetFramework的mscorlib.dll进行反汇编时,发现事情好像并不是这样,看下图:publicstructInt32:IComparable,IFormattable/IConvertiblerIConparabl^inO/IEquatablepublicconstintMaxValue・0x7ffftfff;publi

3、cconstintMinValue・-2147483648;internalintm^value;publicintCojnpareTo(objectvalue);publicintCojr^areTo(intvalue);publicoverrideboolEquals(objectobj);publicboolE(ivals(intobj);publicoverrideintGetHashCode();publicoveEEidestringToString();publicstringToString(strmgformat);publicstringToString(IFormat

4、Providerprovider);publicstringToString(stringformat#IFor・&tPi:ovi.dei:provider);publicpublicpublicstaticstaticstaticintParse(stringintParse(stringmtParse(st“ng9/NuiiberStylesstyle);s,IFoEnatPEOvideEpcovidei:);publicstaticmtParse(strings,NunberStylesstyle,IForaatProviderprovider);上图是Dixin通过Reflecto

5、r对mscorlib.dll进行反汇编后看到的System.Int32的定义,在上图中,我们看到Int32的定义中用到了int,如果按MSDN中说,int只是System.Int32的别名,那问题就來了:(1).使用int和使用System」nt32是没有区别的。(2).在C#的Struct定义中,字段中存在类型为自己的变量,是不允许的,例子如下:publicstructTest{publicTestvalue;}上面这个例了编译会失败。由于System」nt32等价于int,所以System.Int32的编译也应该会失败的!但事实上是,Reflector反编译出來的代码的确显示Syste

6、m.Int32定义中使用了int。这就不禁让人怀疑,int和System.Int32的关系到底是不是如MSDN所说的这么简单呢??究竟int是System.Int32的别名呢?还是System.Int32对int进行了封装呢?二・int和System.Int32的关系卞图是我从微软官方介绍里截取的,我们先简单看一下.NetFramework的架构:.NetFramework是一个基础平台,它要支持建立在此基础上的各种语言,以及跨语言程序Z间的通信。如图:山于上述原因,.NetFramework对外提供的资源必须是通用的,并且避免使用某种语言的特有称呼,以免造成不必耍的混淆。于是,这就有了i

7、nt和System.Int32,它们的关系如下图:int和Systemelnt32的关系类库S:运行库c#nint.U171I32!.Net_/Framework-一-•G•1•1•*7System.Int32M.NetFramework对32位整数的标浜,MSDN对这种类型标示的称呼是UserType。而int则是c#语言里而的特有称呼(这里它对应的.NetFramework里的System.Int32),MSDN对c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。