JUST DO IT ~

          我只想當(dāng)個(gè)程序員

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





           

          將在控制臺(tái)上輸出值10因?yàn)閷?/span>p賦值給box是一個(gè)隱式裝箱操作它將復(fù)制p的值。如果將 Point 聲明為 class,由于 pbox 將引用同一個(gè)實(shí)例,因此輸出值為 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 小高 閱讀(420) 評(píng)論(1)  編輯  收藏 所屬分類: DotNet

          評(píng)論

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

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

          導(dǎo)航

          <2008年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          統(tǒng)計(jì)

          常用鏈接

          留言簿(3)

          隨筆分類(352)

          收藏夾(19)

          關(guān)注的blog

          手冊(cè)

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 田东县| 长乐市| 新化县| 洱源县| 清水河县| 思茅市| 万全县| 互助| 南雄市| 灵武市| 福泉市| 维西| 太仆寺旗| 黔江区| 龙川县| 即墨市| 宜宾县| 九龙县| 沁阳市| 盖州市| 昂仁县| 白玉县| 金门县| 崇仁县| 洞头县| 澜沧| 仁化县| 灵寿县| 蓬安县| 安福县| 定西市| 抚顺县| 章丘市| 聂拉木县| 沽源县| 祁阳县| 拜城县| 石河子市| 阳曲县| 依安县| 邵武市|