zoukankan      html  css  js  c++  java
  • 脚踏实地学C#1-基元类型

    基元类型:编译器直接支持的数据类型

        基元类型直接映射到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简化的语法
  • 相关阅读:
    linux之 awk
    linux之 sed命令
    HBase源码分析之WAL
    oracle之 单实例监听修改端口
    oracle之 ORA-12557: TNS: 协议适配器不可加载
    oracle之 反向键索引
    oracle之 AWR固定基线
    oracle之 如何 dump logfile
    oracle 之 CLUSTER_INTERCONNECTS is not set to the recommended value
    oracle之 变更OS时间对数据库的影响
  • 原文地址:https://www.cnblogs.com/qq0827/p/3251235.html
Copyright © 2011-2022 走看看