302班

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

          結(jié)構(gòu)和類非常相似,但結(jié)構(gòu)是值類型,而類是引用類型。
          對象是引用類型,在把對象付給變量時,實(shí)際上是把帶有一個指針的變量賦給了該指針?biāo)赶虻膶ο螅羔樖莾?nèi)存中的一個地址。在這種情況下,地址是內(nèi)存中該對象所在的位置。在用下面的代碼把一個對象引用賦給類型為MyClass的第二個變量時,實(shí)際上是復(fù)制了這個地址。
                     myClass  objectB=objectA;
          這樣兩個變量就包含同一個對象的指針。
          結(jié)構(gòu)是值類型,其變量并不是包含節(jié)后的指針,而是包含結(jié)構(gòu)本身。在下面的代碼把第一個結(jié)構(gòu)賦給類型為myStruct的第二個變量時,實(shí)際上是把第一個結(jié)構(gòu)的所有信息復(fù)制到另一個結(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)行圖:

          主站蜘蛛池模板: 黄浦区| 临城县| 南郑县| 西安市| 临高县| 法库县| 澜沧| 辛集市| 乐昌市| 金堂县| 嵊泗县| 古浪县| 靖江市| 桃园县| 宁河县| 清水河县| 伊吾县| 新绛县| 福清市| 泰兴市| 海伦市| 双桥区| 浮梁县| 安顺市| 德保县| 临湘市| 即墨市| 漯河市| 滁州市| 中西区| 元朗区| 临清市| 辽源市| 甘肃省| 德化县| 东兰县| 新乐市| 肥西县| 江安县| 柏乡县| 长春市|