C#入門(mén)之概念簡(jiǎn)介
C#入門(mén)之概念簡(jiǎn)介
談到C#入門(mén)我們首先來(lái)看看C#,它是是一種簡(jiǎn)潔、類(lèi)型安全的面向?qū)ο蟮恼Z(yǔ)言,開(kāi)發(fā)人員可以使用它來(lái)構(gòu)建在 .NET Framework 上運(yùn)行的各種安全、可靠的應(yīng)用程序。使用 C#,您可以創(chuàng)建傳統(tǒng)的 Windows 客戶(hù)端應(yīng)用程序、XML Web services、分布式組件、客戶(hù)端 - 服務(wù)器應(yīng)用程序、數(shù)據(jù)庫(kù)應(yīng)用程序以及很多其他類(lèi)型的程序。Microsoft Visual C# 2005 提供高級(jí)代碼編輯器、方便的用戶(hù)界面設(shè)計(jì)器、集成調(diào)試器和許多其他工具,以在 C# 語(yǔ)言版本 2.0 和 .NET Framework 的基礎(chǔ)上加快應(yīng)用程序的開(kāi)發(fā)。
C#入門(mén)之C#語(yǔ)言
C#語(yǔ)法表現(xiàn)力強(qiáng),只有不到 90 個(gè)關(guān)鍵字,而且簡(jiǎn)單易學(xué)。C# 的大括號(hào)語(yǔ)法使任何熟悉 C、C++ 或 Java 的人都可以立即上手。了解上述任何一種語(yǔ)言的開(kāi)發(fā)人員通常在很短的時(shí)間內(nèi)就可以開(kāi)始使用 C# 高效地工作。C# 語(yǔ)法簡(jiǎn)化了 C++ 的諸多復(fù)雜性,同時(shí)提供了很多強(qiáng)大的功能,例如可為空的值類(lèi)型、枚舉、委托、匿名方法和直接內(nèi)存訪問(wèn),這些都是 Java 所不具備的。C# 還支持泛型方法和類(lèi)型,從而提供了更出色的類(lèi)型安全和性能。C# 還提供了迭代器,允許集合類(lèi)的實(shí)現(xiàn)者定義自定義的迭代行為,簡(jiǎn)化了客戶(hù)端代碼對(duì)它的使用。
作為一種面向?qū)ο蟮恼Z(yǔ)言,C# 支持封裝、繼承和多態(tài)性概念。所有的變量和方法,包括 Main 方法(應(yīng)用程序的入口點(diǎn)),都封裝在類(lèi)定義中。類(lèi)可能直接從一個(gè)父類(lèi)繼承,但它可以實(shí)現(xiàn)任意數(shù)量的接口。重寫(xiě)父類(lèi)中的虛方法的各種方法要求 override 關(guān)鍵字作為一種避免意外重定義的方式。在 C# 中,結(jié)構(gòu)類(lèi)似于一個(gè)輕量類(lèi);它是一種堆棧分配的類(lèi)型,可以實(shí)現(xiàn)接口,但不支持繼承。
除了這些基本的面向?qū)ο蟮脑恚珻#還通過(guò)幾種創(chuàng)新的語(yǔ)言結(jié)構(gòu)加快了軟件組件的開(kāi)發(fā),其中包括:
封裝的方法簽名(稱(chēng)為委托),它實(shí)現(xiàn)了類(lèi)型安全的事件通知。
屬性 (Property),充當(dāng)私有成員變量的訪問(wèn)器。
屬性 (Attribute),提供關(guān)于運(yùn)行時(shí)類(lèi)型的聲明性元數(shù)據(jù)。
內(nèi)聯(lián) XML 文檔注釋。
在 C# 中,如果需要與其他 Windows 軟件(如 COM 對(duì)象或本機(jī) Win32 DLL)交互,可以通過(guò)一個(gè)稱(chēng)為“Interop”的過(guò)程來(lái)實(shí)現(xiàn)?;ゲ僮魇?C# 程序能夠完成本機(jī) C++ 應(yīng)用程序可以完成的幾乎任何任務(wù)。在直接內(nèi)存訪問(wèn)必不可少的情況下,C# 甚至支持指針和“不安全”代碼的概念。
C# 的生成過(guò)程比 C 和 C++ 簡(jiǎn)單,比 Java 更為靈活。沒(méi)有單獨(dú)的頭文件,也不要求按照特定順序聲明方法和類(lèi)型。C# 源文件可以定義任意數(shù)量的類(lèi)、結(jié)構(gòu)、接口和事件。
C#入門(mén)之.NET Framework平臺(tái)體系結(jié)構(gòu)介紹
C# 程序在 .NET Framework 上運(yùn)行,它是 Windows 的一個(gè)必要組件,包括一個(gè)稱(chēng)為公共語(yǔ)言運(yùn)行時(shí) (CLR) 的虛擬執(zhí)行系統(tǒng)和一組統(tǒng)一的類(lèi)庫(kù)。CLR 是 Microsoft 的公共語(yǔ)言基礎(chǔ)結(jié)構(gòu) (CLI) 的一個(gè)商業(yè)實(shí)現(xiàn)。CLI 是一種國(guó)際標(biāo)準(zhǔn),是用于創(chuàng)建語(yǔ)言和庫(kù)在其中無(wú)縫協(xié)同工作的執(zhí)行和開(kāi)發(fā)環(huán)境的基礎(chǔ)。
用 C# 編寫(xiě)的源代碼被編譯為一種符合 CLI 規(guī)范的中間語(yǔ)言 (IL)。IL 代碼與資源(如位圖和字符串)一起作為一種稱(chēng)為程序集的可執(zhí)行文件存儲(chǔ)在磁盤(pán)上,通常具有的擴(kuò)展名為 .exe 或 .dll。程序集包含清單,它提供關(guān)于程序集的類(lèi)型、版本、區(qū)域性和安全要求等信息。
執(zhí)行 C# 程序時(shí),程序集將加載到 CLR 中,這可能會(huì)根據(jù)清單中的信息執(zhí)行不同的操作。然后,如果符合安全要求,CLR 執(zhí)行實(shí)時(shí) (JIT) 編譯以將 IL 代碼轉(zhuǎn)換為本機(jī)機(jī)器指令。CLR 還提供與自動(dòng)垃圾回收、異常處理和資源管理有關(guān)的其他服務(wù)。由 CLR 執(zhí)行的代碼有時(shí)稱(chēng)為“托管代碼”,它與編譯為面向特定系統(tǒng)的本機(jī)機(jī)器語(yǔ)言的“非托管代碼”相對(duì)應(yīng)。下圖演示了 C# 源代碼文件、基類(lèi)庫(kù)、程序集和 CLR 的編譯時(shí)與運(yùn)行時(shí)的關(guān)系。
語(yǔ)言互操作性是 .NET Framework 的一個(gè)關(guān)鍵功能。因?yàn)橛?C# 編譯器生成的 IL 代碼符合公共類(lèi)型規(guī)范 (CTS),因此從 C# 生成的 IL 代碼可以與從 Visual Basic、Visual C++、Visual J# 的 .NET 版本或者其他 20 多種符合 CTS 的語(yǔ)言中的任何一種生成的代碼進(jìn)行交互。單一程序集可能包含用不同 .NET 語(yǔ)言編寫(xiě)的多個(gè)模塊,并且類(lèi)型可以相互引用,就像它們是用同一種語(yǔ)言編寫(xiě)的。
除了運(yùn)行時(shí)服務(wù),.NET Framework 還包含一個(gè)由 4000 多個(gè)類(lèi)組成的內(nèi)容詳盡的庫(kù),這些類(lèi)被組織為命名空間,為從文件輸入和輸出到字符串操作、到 XML 分析、到 Windows 窗體控件的所有內(nèi)容提供多種有用的功能。典型的 C# 應(yīng)用程序使用 .NET Framework 類(lèi)庫(kù)廣泛地處理常見(jiàn)的“日?!比蝿?wù)。
C#入門(mén)相關(guān)的概念介紹就向你講解到這里,希望對(duì)你了解C#入門(mén)基礎(chǔ)概念有所幫助。
【編輯推薦】