302班

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

          結(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)行圖:

          主站蜘蛛池模板: 大竹县| 平武县| 兴安盟| 普兰店市| 四子王旗| 揭西县| 云龙县| 防城港市| 白银市| 紫云| 大姚县| 唐河县| 津市市| 板桥市| 鄯善县| 鄂州市| 阳新县| 喀喇沁旗| 柯坪县| 栾川县| 华安县| 宜君县| 内乡县| 会泽县| 古田县| 宽城| 普兰店市| 壤塘县| 札达县| 抚远县| 玛多县| 淳安县| 竹溪县| 甘洛县| 札达县| 天柱县| 虞城县| 鹤峰县| 定陶县| 伊川县| 禄劝|