JUST DO IT ~

          我只想當個程序員

          c# 裝箱轉換 結構的拆裝箱 問題





           

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




          D:\c_\4.3.1 裝箱轉換>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# 裝箱轉換 結構的拆裝箱 問題 2008-08-09 18:46 小高

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

          導航

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

          統計

          常用鏈接

          留言簿(3)

          隨筆分類(352)

          收藏夾(19)

          關注的blog

          手冊

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 榆中县| 化州市| 义乌市| 禄丰县| 泾阳县| 吉隆县| 普宁市| 昌都县| 天津市| 额尔古纳市| 霸州市| 寻甸| 高碑店市| 东乡| 疏勒县| 三原县| 祁东县| 灵山县| 濮阳市| 青州市| 汾阳市| 镇安县| 安阳县| 静安区| 梓潼县| 塔河县| 清涧县| 彰武县| 双柏县| 莆田市| 梓潼县| 阿克陶县| 靖西县| 定结县| 门头沟区| 汤原县| 神农架林区| 兴和县| 东港市| 东光县| 班玛县|