脚踏实地学C#1-基元类型_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 脚踏实地学C#1-基元类型

脚踏实地学C#1-基元类型

 2013/8/11 15:07:37  冰壶秋月  博客园  我要评论(0)
  • 摘要:基元类型:编译器直接支持的数据类型基元类型直接映射到FCL类库上,如int和Int32是等价的,只不过是int是c#提供的,Int32是FCL类库提供的。int只是Int32的别名usingint=System.Int32;使用Int32:System.Int32number=newSystem.Int32();number=2;Console.WriteLine(number);Console.ReadKey();生成IL代码为:
  • 标签:C#

class="First">基元类型:编译器直接支持的数据类型

基元类型直接映射到FCL类库上,如int 和Int32是等价的,只不过是int是c#提供的,Int32是FCL类库提供的。

int只是Int32的别名

using int=System.Int32;

使用Int32:

System.Int32 number = new System.Int32();
number = 2;
Console.WriteLine(number);
Console.ReadKey();

生成IL代码为:

.method private hidebysig static void Main(string[] args) cil managed
   {
       .entrypoint
       .maxstack 1
       .locals init (
           [0] int32 number)
       L_0000: nop
       L_0001: ldc.i4.0
       L_0002: stloc.0
       L_0003: ldc.i4.2
       L_0004: stloc.0
       L_0005: ldloc.0
       L_0006: call void [mscorlib]System.Console::WriteLine(int32)
       L_000b: nop
       L_000c: call valuetype [mscorlib]System.ConsoleKeyInfo [mscorlib]System.Console::ReadKey()
       L_0011: pop
       L_0012: ret
   }

使用int

int number = new int();
number = 2;
Console.WriteLine(number);
Console.ReadKey();

生成IL代码为:

.method private hidebysig static void Main(string[] args) cil

managed
{
    .entrypoint
    .maxstack 1
    .locals init (
        [0] int32 number)
    L_0000: nop
    L_0001: ldc.i4.0
    L_0002: stloc.0
    L_0003: ldc.i4.2
    L_0004: stloc.0
    L_0005: ldloc.0
    L_0006: call void [mscorlib]System.Console::WriteLine(int32)
    L_000b: nop
    L_000c: call valuetype [mscorlib]System.ConsoleKeyInfo[mscorlib]System.Console::ReadKey()
    L_0011: pop
    L_0012: ret
}

通过生成的IL代码对比,发现int和Int32生成的IL代码是一样

上面给number赋值的语法,很不方便,相信没有人会这样,幸好编译器允许代码以简化的语法来操纵他们,

int number=2; // C#简化的语法
Int32 number=2; //FCL简化的语法

上一篇: WPF x名称空间 下一篇: 没有下一篇了!
发表评论
用户名: 匿名