利用上面介紹過的簡單類型,我們在進行一些常用的數據運算、文字處理似乎已經足夠了。但是我們會經常碰到一些更為復雜的數據類型。比如,通訊錄的記錄中可以包含他人的姓名、電話和地址。如果按照簡單類型來管理,每一條記錄都要存放到三個不同的變量當中,這樣工作量很大,也不夠直觀。有沒有更好的辦法呢?
正如上面的例子,在實際生活中,我們經常把一組相關的信息放在一起。把一系列相關的變量組織成為一個單一實體的過程,我們稱為生成結構的過程。這個單一實體的類型就叫做結構類型,每一個變量稱為結構的成員。結構類型的變量采用struct來進行聲明,比如我們可以定義通訊錄記錄結構的定義:
struct PhoneBook{ public string name; public string phone; public string address; } PhoneBook p1;
p1就是一個PhoneBook結構類型的變量。上面聲明中的public表示對結構類型的成員的訪問權限,有關訪問的細節問題我們將在第三部分詳細討論。對結構成員的訪問通過結構變量名加上訪問符“.”號,再跟成員的名稱:
p1.name="Mike";
結構類型包含的成員類型沒有限制,可以相同,也可以不同。比如,我們可以在通訊錄的記錄中在加上年齡這個成員:
struct PhoneBook{ public string name; public string uint age; public string phone; public string address; } 我們甚至可以把結構類型作為另一個結構的成員的類型,這也沒有任何問題: struct PhoneBook{ public string name; public string uint age; public string phone; public struct address{ public string city; public string street; public uint no; } }
這裡,“通訊錄”這個結構中雙包括了“地址”這個結構,結構“地址”類型包括城市、街道、門牌號碼三個成員。