【正文】
Visual C.NET Overview C 語言功能概覽 ? C 語言是一種簡單但功能強(qiáng)大的編程語言,用于編寫企業(yè)應(yīng)用程序。 ? C 語言從 C 和 C++ 語言演化而來。它在語句、表達(dá)式和運(yùn)算符方面使用了許多 C++ 功能。 ? C 語言在類型安全性、版本轉(zhuǎn)換、事件和垃圾回收等方面進(jìn)行了相當(dāng)大的改進(jìn)和創(chuàng)新。 ? C 語言提供對(duì)常用 API 樣式(如 .NET Framework、 COM、自動(dòng)化和 C 樣式 API 等)的訪問。它還支持 unsafe 模式,在此模式下可以使用指針操作不受垃圾回收器控制的內(nèi)存。 使用 C 語言的原因 ? C 是一種精確、簡單、類型安全、面向?qū)ο蟮恼Z言,它使企業(yè)程序員得以構(gòu)建廣泛的應(yīng)用程序。 ? C 還憑借以下功能,為您提供生成持久系統(tǒng)級(jí)組件的能力: ? 對(duì)集成現(xiàn)有代碼提供完全 COM/平臺(tái)支持。 ? 通過提供垃圾回收和類型安全實(shí)現(xiàn)可靠性。 ? 通過提供內(nèi)部代碼信任機(jī)制保證安全性。 ? 完全支持可擴(kuò)展元數(shù)據(jù)概念。 ? C 還可以憑借以下功能,與其他語言交互操作、跨平臺(tái)互用并與遺留的數(shù)據(jù)交互操作: ? 通過 COM+ 和 .NET Framework 服務(wù)提供具有緊密庫訪問的完全相互作用支持。 ? 對(duì)基于 Web 的組件交互提供 XML 支持。 ? 版本轉(zhuǎn)換功能使管理和部署變得簡易。 Hello World! 的 C 版 ? 以下控制臺(tái)程序是傳統(tǒng)“ Hello World!”程序的 C 版,該程序顯示字符串 Hello World!。 // A Hello World! program in C class Hello (public) class Hello { { static void Main() public static void main(String args[]) { { . (“Hello World!”)。 WriteLine(Hello World!)。 } } } } C 程序的常規(guī)結(jié)構(gòu) ? C 程序可由一個(gè)或多個(gè)文件組成。每個(gè)文件可包含一個(gè)或多個(gè)命名空間。一個(gè)命名空間除了可包含其他命名空間外,還可包含類、結(jié)構(gòu)、接口、枚舉、委托等類型。以下是 C 程序的主干,它包含所有這些元素。 // A skeleton of a C program using System。 namespace MyNamespace1 { class MyClass1 { } struct MyStruct { } interface IMyInterface { } delegate int MyDelegate()。 enum MyEnum { } namespace MyNamespace2 { } class MyClass2 { public static void Main(string[] args) { } } } 通用類型系統(tǒng) ? Everything is an object ? All types ultimately inherit from object ? Any piece of data can be stored, transported, and manipulated with no extra work 通用類型系統(tǒng) ? Boxing ? Allocates box, copies value into it ? Unboxing ? Checks type of box, copies value out int i = 123。 object o = i。 //i中值的一個(gè)副本 int j = (int)o。 //思考 int j = o。 123 i o 123 123 j 通用類型系統(tǒng) ? Benefits ? Eliminates “wrapper classes” ? Collection classes work with all types ? Replaces OLE Automation39。s Variant ? Lots of examples in .NET Framework string s = ( Your total was {0} on {1}, total, date)。 Hashtable t = new Hashtable()。 (0, zero)。 (1, one)。 (2, two)。 類型 ? C 類型體系包含下列幾種類別: ? 值類型 ? 引用類型 ? 指針類型 ? 值類型的變量存儲(chǔ)數(shù)據(jù),而引用類型的變量存儲(chǔ)對(duì)實(shí)際數(shù)據(jù)的引用。引用類型也稱為對(duì)象。指針類型僅可用于 unsafe 模式。 ? 可通過使用裝箱和取消裝箱將值類型和引用類型相互轉(zhuǎn)換。 值類型 (1/4) ? 值類型主要由兩類組成: ? Struct(結(jié)構(gòu))類型 ? 枚舉類型 ? 結(jié)構(gòu)類型包括用戶定義的 struct 類型以及下列內(nèi)置的簡單類型: ? Numeric(數(shù)值)類型 1. 整型 2. 浮點(diǎn)型 3. decimal(十進(jìn)制 ) ? bool 值類型 (2/4) ? 值類型的主要功能 ? 值類型的變量總是包含該類型的值。對(duì)值類型變量賦值將創(chuàng)建所賦的值的一個(gè)副本,而對(duì)引用類型變量賦值將創(chuàng)建引用的副本,而不是引用對(duì)象的副本。 ? 所有的值類型均隱式派生自 Object 類。 ? 與引用類型不同,從值類型不可能派生出新的類型。但與引用類型相同的是,結(jié)構(gòu)也可以實(shí)現(xiàn)接口。 ? 與引用類型不同,值類型不可能包含 null 值。 ? 每種值類型均有一個(gè)隱式的默認(rèn)構(gòu)造函數(shù)來初始化該類型的默認(rèn)值。 值類型 (3/4) ? 簡單類型的主要功能 ? 所有的簡單類型均為 .NET Framework 系統(tǒng)類型的別名。例如, int 是 的別名。編譯時(shí)計(jì)算操作數(shù)均為簡單類型常數(shù)的常數(shù)表達(dá)式。 ? 可使用文字初始化簡單類型。例如,“ A”是 char 類型的文字,而 2001 是 int 類型的文字。 值類型 (4/4) ? 初始化值類型 ? C 中的局部變量經(jīng)初始化后方可使用。因此,如果像下面這樣聲明了一個(gè)局部變量而未將其初始化: int myInt。 那么在將其初始化之前,無法使用此變量??墒褂孟铝姓Z句將其初始化: myInt = new int()。 此語句等效于: myInt = 0。 ? 使用 new 運(yùn)算符將調(diào)用特定類型的默認(rèn)構(gòu)造函數(shù)并為變量賦以默認(rèn)值。 ? 對(duì)于用戶定義類型,使用 new 調(diào)用默認(rèn)構(gòu)造函數(shù)。例如,下列語句調(diào)用了 Point 結(jié)構(gòu)的默認(rèn)構(gòu)造函數(shù): ? Point p = new Point()。 // Invoke the default