JUST DO IT ~

          我只想當個程序員

          c# 裝箱轉(zhuǎn)換 結(jié)構(gòu)的拆裝箱 問題





           

          將在控制臺上輸出值10因為將p賦值給box是一個隱式裝箱操作它將復(fù)制p的值。如果將 Point 聲明為 class,由于 pbox 將引用同一個實例,因此輸出值為 20




          D:\c_\4.3.1 裝箱轉(zhuǎn)換>Test
          Box contains an int-----------------------
          10-----------------------
          20-----------------------
          -----------------------
          20
          -----------------------
          20




          struct Point
          {
              
          public int x, y;
              
          public Point(int x, int y)
              
          {
                  
          this.x = x;
                  
          this.y = y;
              }

          }


          class  Pint
          {
              
          public int x, y;
              
          public Pint(int x, int y)
              
          {
                  
          this.x = x;
                  
          this.y = y;
              }

          }

          class Test {

              
          public static void Main() {

                  
          int i = 123;
                  
          object box = i;
                  
          if (box is int)
                  
          {
                      Console.Write(
          "Box contains an int");
                  }


                  Console.WriteLine(
          "-----------------------");
                  Point p 
          = new Point(1010);
                  
          object box1 = p;
                  p.x 
          = 20;
                  Console.Write(((Point)box1).x);

                  Console.WriteLine(
          "-----------------------");
               
                  Console.Write((p).x);
                  Console.WriteLine(
          "-----------------------");
               

                  Pint pi 
          = new Pint(1010);
                  
          object box2 = pi;
                  pi.x 
          = 20;
                  Console.WriteLine(
          "-----------------------");
               
                  Console.WriteLine(((Pint)box2).x);
                  Console.WriteLine(
          "-----------------------");
               
                  Console.Write((pi).x);


              }


          }

          posted on 2008-02-12 11:37 小高 閱讀(413) 評論(1)  編輯  收藏 所屬分類: DotNet

          評論

          # re: c# 裝箱轉(zhuǎn)換 結(jié)構(gòu)的拆裝箱 問題 2008-08-09 18:46 小高

          java equals ( Integer ) -125~126 緩存變量可能不通
            回復(fù)  更多評論   

          導航

          <2008年2月>
          272829303112
          3456789
          10111213141516
          17181920212223
          2425262728291
          2345678

          統(tǒng)計

          常用鏈接

          留言簿(3)

          隨筆分類(352)

          收藏夾(19)

          關(guān)注的blog

          手冊

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 隆尧县| 扶风县| 阜平县| 武邑县| 吴堡县| 潜江市| 临澧县| 阿克陶县| 安泽县| 桂东县| 江达县| 奉节县| 武隆县| 大英县| 怀集县| 中江县| 通江县| 綦江县| 建瓯市| 松江区| 哈巴河县| 安岳县| 新昌县| 佳木斯市| 灵武市| 湖北省| 信丰县| 高雄县| 德保县| 松溪县| 洱源县| 宝丰县| 安塞县| 东光县| 东源县| 雅安市| 鹤庆县| 盐津县| 弥渡县| 蓬溪县| 华蓥市|