302班

          java突擊隊(duì)
          posts - 151, comments - 74, trackbacks - 0, articles - 14
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          日歷

          <2007年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          搜索

          •  

          積分與排名

          • 積分 - 154320
          • 排名 - 394

          最新評論

          結(jié)構(gòu)和類非常相似,但結(jié)構(gòu)是值類型,而類是引用類型。
          對象是引用類型,在把對象付給變量時(shí),實(shí)際上是把帶有一個(gè)指針的變量賦給了該指針?biāo)赶虻膶ο螅羔樖莾?nèi)存中的一個(gè)地址。在這種情況下,地址是內(nèi)存中該對象所在的位置。在用下面的代碼把一個(gè)對象引用賦給類型為MyClass的第二個(gè)變量時(shí),實(shí)際上是復(fù)制了這個(gè)地址。
                     myClass  objectB=objectA;
          這樣兩個(gè)變量就包含同一個(gè)對象的指針。
          結(jié)構(gòu)是值類型,其變量并不是包含節(jié)后的指針,而是包含結(jié)構(gòu)本身。在下面的代碼把第一個(gè)結(jié)構(gòu)賦給類型為myStruct的第二個(gè)變量時(shí),實(shí)際上是把第一個(gè)結(jié)構(gòu)的所有信息復(fù)制到另一個(gè)結(jié)構(gòu)中。
                myStruct  structB=structA;
                使用指針的技術(shù)隱藏在C#代碼中,它使得代碼更簡單,使用C#中的不安全代碼可以進(jìn)行低級操作。

          using System;
          using System.Collections.Generic;
          using System.Text;

          namespace structAndClass
          {
              class MyClass
              {
                public int val;
              }
              struct myStruct
              {
                  public int val;
              }
              class Program
              {
                  static void Main(string[] args)
                  {
                      MyClass objectA = new MyClass();
                      MyClass objectB = objectA;
                      objectA.val = 10;
                      objectB.val = 20;
                      myStruct structA = new myStruct();
                      myStruct structB = structA;
                      structA.val = 30;
                      structB.val = 40;
                      Console.WriteLine("objectA.val={0}",objectA.val);
                      Console.WriteLine("objectB.val={0}", objectB.val);
                      Console.WriteLine("structA.val={0}", structA.val);
                      Console.WriteLine("structB.val={0}", structB.val);
                      Console.ReadKey();
                  }
              }
          }
          運(yùn)行圖:

          主站蜘蛛池模板: 雷山县| 乌什县| 六枝特区| 西畴县| 临泉县| 乾安县| 中卫市| 枞阳县| 耒阳市| 南充市| 读书| 瑞安市| 奉节县| 福贡县| 安塞县| 靖远县| 涿鹿县| 勃利县| 淄博市| 太仓市| 永年县| 哈密市| 来凤县| 慈利县| 安乡县| 平潭县| 香港 | 永平县| 三河市| 平凉市| 若尔盖县| 安吉县| 凤翔县| 北安市| 西华县| 彝良县| 甘肃省| 阿勒泰市| 大同县| 准格尔旗| 赤壁市|