C#里面关于System.Int32类型的一个疑问?

来源:百度知道 编辑:UC知道 时间:2024/05/23 16:53:28
书上说它System.Int32是一个结构体,比如我给他定义一个整型变量 System.Int32 i=9, 那么i是一个结构体类型的了,9是一个整型的, 这样应该是不能直接赋值的,(不知道我说的清楚不清楚哦)我就想不通,为什么这样可以呢?
能不能帮我说详细一点..这么多答案看都看晕了.
System.Int32 他又是一个结构体类型,怎么又是整型.这是为什么?

严格的讲Int32和int并不是一样的,使用Reflector反编译一下mscorlib.dll就可以看到System.int32类里面使用了很多int类型的属性,如果int和int32完全等价这样做就不允许了。int是.Net定义的几个元类型之一,Int32是对int类型的封装。但在IL和编译器内部,Int32和int的处理方法是一样的。
详细可以参考:
http://www.cnblogs.com/yandixin/archive/2007/12/20/Int.html

Int32=int
Int64=long(int)
Int16=short(int)
9为整形数即为int,int=Int32,所以Int32 i能赐值9

没有,你仔细看,其实“9”在编译器里面也是被认为是结构体Int32的量。

你一样可以写:9.ToString();9.CompareTo(6);这样的代码。

在 C# 中,int 就是 System.Int32。整型就是 Int32。

system.int32 是一个CLR中的整型变量 在c#中 int 就是映射到这个类型,并且它提供了一系列方法和属性

system.int32就是int,说准确一点就是int是system.int32的别名