類和結(jié)構(gòu)是 .NET Framework 中的常規(guī)類型系統(tǒng)的兩種基本構(gòu)造。 兩者在本質(zhì)上都屬于數(shù)據(jù)結(jié)構(gòu),封裝著一組整體作為一個邏輯單位的數(shù)據(jù)和行為。 數(shù)據(jù)和行為是該類或結(jié)構(gòu)的“成員”,它們包含各自的方法、屬性和事件等(本主題后面列出了這些內(nèi)容)。
創(chuàng)新互聯(lián)專注于澄城網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供澄城營銷型網(wǎng)站建設(shè),澄城網(wǎng)站制作、澄城網(wǎng)頁設(shè)計、澄城網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造澄城網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供澄城網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。類或結(jié)構(gòu)的聲明類似于藍圖,用于在運行時創(chuàng)建實例或?qū)ο蟆? 如果定義一個名為 Person
的類或結(jié)構(gòu),則 Person
為類型名稱。 如果聲明并初始化 Person
類型的變量 p
,則 p
稱為 Person
的對象或?qū)嵗? 可以創(chuàng)建同一 Person
類型的多個實例,每個實例在其屬性和字段中具有不同的值。
類是一種“引用類型”。 創(chuàng)建類的對象時,對象賦值到的變量只保存對該內(nèi)存的引用。 將對象引用賦給新變量時,新變量引用的是原始對象。 通過一個變量做出的更改將反映在另一個變量中,因為兩者引用同一數(shù)據(jù)。
結(jié)構(gòu)是一種值類型。 創(chuàng)建結(jié)構(gòu)時,結(jié)構(gòu)賦值到的變量保存該結(jié)構(gòu)的實際數(shù)據(jù)。 將結(jié)構(gòu)賦給新變量時,將復(fù)制該結(jié)構(gòu)。 因此,新變量和原始變量包含同一數(shù)據(jù)的兩個不同的副本。 對一個副本的更改不影響另一個副本。
類通常用于對較為復(fù)雜的行為建模,或?qū)σ趧?chuàng)建類對象后進行修改的數(shù)據(jù)建模。 結(jié)構(gòu)最適合一些小型數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)包含的數(shù)據(jù)以創(chuàng)建結(jié)構(gòu)后不修改的數(shù)據(jù)為主。
下面的示例在 ProgrammingGuide
命名空間的頂級使用三個成員定義了 MyCustomClass
。 在 Program
類的 Main
方法中創(chuàng)建了 MyCustomClass
的一個實例(對象),并使用點表示法訪問該對象的方法和屬性。
namespace ProgrammingGuide { // Class definition. public class MyCustomClass { // Class members: // Property. public int Number { get; set; } // Method. public int Multiply(int num) { return num * Number; } // Instance Constructor. public MyCustomClass() { Number = 0; } } // Another class definition. This one contains // the Main method, the entry point for the program. class Program { static void Main(string[] args) { // Create an object of type MyCustomClass. MyCustomClass myClass = new MyCustomClass(); // Set the value of a public property. myClass.Number = 27; // Call a public method. int result = myClass.Multiply(4); } } }
封裝
“封裝”有時被稱為面向?qū)ο蟮木幊痰牡谝粋€支柱或原則。 根據(jù)封裝的原則,類或結(jié)構(gòu)可以指定其每個成員對于該類或結(jié)構(gòu)外部的代碼的可訪問性。 可將無意在類或程序集外部使用的方法和變量隱藏起來,以減小編碼錯誤或遭惡意利用的可能性。
有關(guān)類的更多信息,請參見類和對象。
所有方法、字段、常量、屬性和事件都必須在類型內(nèi)部進行聲明;這些稱為類型的“成員”。 與其他一些語言不同的是,C# 中沒有全局變量或方法。 即使是作為程序入口點的 Main
方法也必須在類或結(jié)構(gòu)內(nèi)部進行聲明。 下表列出了可在類或結(jié)構(gòu)中聲明的所有不同種類的成員。
字段
常量
屬性
方法
構(gòu)造函數(shù)
析構(gòu)函數(shù)
事件
索引器
運算符
嵌套類型
有些方法和屬性要供類或結(jié)構(gòu)外部的代碼(稱為“客戶端代碼”)調(diào)用或訪問。 另有一些方法和屬性可能僅供類或結(jié)構(gòu)在自身內(nèi)部使用。 應(yīng)限制您的代碼的可訪問性,只允許應(yīng)當(dāng)訪問它們的客戶端代碼進行訪問,這一點十分重要。 使用訪問修飾符 public、protected、internal、protected internal
和 private 可以指定類型及其成員對于客戶端代碼的可訪問性。 默認可訪問性為 private
。 有關(guān)詳細信息,請參閱 訪問修飾符。
類(而非結(jié)構(gòu))支持繼承的概念。 派生自另一個類(“基類”)的類將自動包含基類除構(gòu)造函數(shù)和析構(gòu)函數(shù)之外的所有公共、受保護和內(nèi)部成員。 有關(guān)更多信息,請參見繼承和多態(tài)性。
可以將類聲明為抽象類,表示該類的一個或多個方法不具有實現(xiàn)。 抽象類雖然無法直接實例化,但可以用作其他類的基類,由其他類提供缺少的實現(xiàn)。 還可以將類聲明為密封類,以禁止其他類從該類繼承。 有關(guān)詳細信息,請參閱 抽象類、密封類及類成員。
類和結(jié)構(gòu)可以繼承多個接口。 從接口繼承意味著該類型要實現(xiàn)該接口中定義的所有方法。 有關(guān)詳細信息,請參閱 接口。
可以使用一個或多個類型參數(shù)來定義類和結(jié)構(gòu)。 客戶端代碼在創(chuàng)建類型的實例時提供類型。 例如,System.Collections.Generic 命名空間中的 ListList
或 List
的實例來指定列表中將包含的類型。 有關(guān)詳細信息,請參閱 泛型。
可以將類(不是結(jié)構(gòu))聲明為靜態(tài)。 靜態(tài)類只能包含靜態(tài)成員,不能使用 new 關(guān)鍵字進行實例化。 在程序加載時,靜態(tài)類的一個副本將加載到內(nèi)存中,可通過類名稱訪問該類的成員。 類和結(jié)構(gòu)都可以包含靜態(tài)成員。 有關(guān)詳細信息,請參閱 靜態(tài)類和靜態(tài)類成員。
類或結(jié)構(gòu)可以嵌套在其他類或結(jié)構(gòu)中。 有關(guān)更多信息,請參見嵌套類型。
可以在一個代碼文件中定義類、結(jié)構(gòu)或方法的一部分,而在另一個代碼文件中定義另一部分。 有關(guān)更多信息,請參見分部類和方法。
可以實例化和初始化類或結(jié)構(gòu)對象以及對象的集合,無需顯式調(diào)用其構(gòu)造函數(shù)。 有關(guān)更多信息,請參見對象和集合初始值設(shè)定項。
在不方便或沒必要創(chuàng)建命名類的情況下,例如當(dāng)使用無需保留或傳遞給其他方法的數(shù)據(jù)結(jié)構(gòu)填充列表時,可以使用匿名類型。 有關(guān)更多信息,請參見匿名類型。
通過創(chuàng)建一個單獨的類型,然后將該類型的方法當(dāng)作原始類型的方法來調(diào)用,可以在不必創(chuàng)建派生類的情況下對類進行“擴展”。 有關(guān)更多信息,請參見擴展方法。
在類或結(jié)構(gòu)方法中,可以使用隱式類型來指示編譯器在編譯時確定正確的類型。 有關(guān)更多信息,請參見隱式類型的局部變量。
摘自:https://msdn.microsoft.com/zh-cn/library/ms173109.aspx
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。