【正文】
e declarative metadata about types at run time. ? Inline XML documentation ments. If you need to interact with other Windows software such as COM objects or native Win32 DLLs, you can do this in C through a process called Interop. Interop enables C programs to do just about anything that a native C++ application can do. C even supports pointers and the concept of unsafe code for those cases in which direct memory access is absolutely critical. The C build process is simple pared to C and C++ and more flexible than in Java. There are no separate header files, and no requirement that methods and types be declared in a particular order. A C source file may define any number of classes, structs, interfaces, and events. C programs run on the .NET Framework, an integral ponent of Windows that includes a virtual execution system called the mon language runtime (CLR) and a unified set of class libraries. The CLR is Microsoft39。典型的 C 應(yīng)用程序使用 .NET Framework 類庫廣泛地處理常見的 “ 日常 ” 任務(wù)。 語言互操作性是 .NET Framework 的一個關(guān)鍵功能。然后,如 果符合安全要求, CLR 執(zhí)行實時 (JIT) 編譯以將 IL 代碼轉(zhuǎn)換為本機機器指令。 用 C 編寫的源代碼被編譯為一種符合 CLI 規(guī)范的中間語言 (IL)。 C 源文件可以定義任意數(shù)量的類、結(jié)構(gòu)、接口和事件?;ゲ僮魇? C 程序能夠完成本機 C++ 應(yīng)用程序可以完成的幾乎任何任務(wù)。 ? 屬性 (Property),充當(dāng)私有成員變量的訪問器。類可能直 接從一個父類繼承,但它可以實現(xiàn)任意數(shù)量的接口。 C 還支持泛型方法和類型,從而提供了更出色的類型安全和性能。 C 語法表現(xiàn)力強,只有不到 90 個關(guān)鍵字,而且簡單易學(xué)。使用設(shè)計器可以為控件生成設(shè)計時用戶界面,這樣開發(fā)人員可以在可視化設(shè)計工具中配置控件的屬性和內(nèi)容。 包括一個可擴展的宿主環(huán)境,該環(huán)境控制應(yīng)用程序的生命周期,即從用戶首次訪問此應(yīng)用程序中的資源(例如頁)到應(yīng)用程序關(guān)閉這一期間。 支持 XML Web services。這些事件顯示診斷和監(jiān)視特征的組合,并在記錄哪些事件以及如何記錄事件等方面提供了高度的靈活性。由于這些 XML 文件是 ASCII 文本文件,因此對 Web 應(yīng)用程序進(jìn)行配置更改比較簡單。 提供了分布式狀態(tài)功能,使您能夠管理一臺計算機或數(shù)臺計算機上同一應(yīng)用程序的多個實例的狀態(tài)信息。 始終使用特定的 Windows 標(biāo)識運行,因此,您可以通過使用 Windows 功能(例如 NTFS 訪問控制列表 (ACL)、數(shù)據(jù)庫權(quán)限等等)來保護(hù)應(yīng)用程序的安全。 除了 .NET 的安全功能外, 還提供了高級的安全基礎(chǔ)結(jié)構(gòu),以便對用戶進(jìn)行身份驗證和授權(quán),并執(zhí)行其他與安全相關(guān)的功能。當(dāng)用戶請求內(nèi)容頁時,這些內(nèi)容頁與母版頁合并,產(chǎn)生將母版頁的布局與內(nèi)容頁中的內(nèi)容組合在一起的輸出??梢韵榷x主題和外觀,然后在頁面級或控件級應(yīng)用這些主題和外觀。 使用 頁和控件框架還可以將常用的 UI 功能封裝成易于使用且可重用的控件。 網(wǎng)頁是完全面向?qū)ο蟮摹?梢詮娜魏螢g覽器或客戶端設(shè)備請求 網(wǎng)頁, 會向請求瀏覽器呈現(xiàn)標(biāo)記(例如 HTML)。當(dāng)您編寫 應(yīng)用程序的代碼時,可以訪問 .NET Framework 中的類。 作為 .NET Framework 的一部分提供。 包括: ? 頁和控件框架 ? 編譯器 ? 安全基礎(chǔ)結(jié)構(gòu) ? 狀態(tài)管理功能 ? 應(yīng)用程序配置 ? 運行狀況監(jiān)視和性能功能 ? 調(diào)試支持 ? XML Web services 框架 ? 可擴展的宿主環(huán)境和應(yīng)用程序生命周期管理 ? 可擴展的設(shè)計器環(huán)境 頁和控件框架是一種編程框架,它在 Web 服務(wù)器上運行,可以動態(tài)地生成和呈現(xiàn) 網(wǎng)頁。 支持基于 Web 的設(shè)備(如移動電話、手持型計算機和個人數(shù)字助理 (PDA))的移動控件。該框架還會在頁處理生命周期中自動維護(hù)頁及該頁上控件的狀態(tài)。 頁和控件框架還提供各種功能,以便可以通過主題和外觀來控制網(wǎng)站的整體外觀 和感覺。然后可以創(chuàng)建包含要顯示的頁特定內(nèi)容的各個內(nèi)容頁。 包括一個編譯器,該編譯器將包括頁和控件在內(nèi)的所有應(yīng)用程序組件編譯成一個程序集,之后 宿主環(huán)境可以使用該程序集來處理用戶請求。您可以根據(jù)應(yīng)用程序的需要方便地移除、添加或替換這些方案。此信息可以獨立于頁上的任何控件。 配置設(shè)置存儲在基于 XML 的文件中。使用 運行狀況監(jiān)視可以報告關(guān)鍵事件,這些關(guān)鍵事件提供有關(guān)應(yīng)用程序的運行狀況和錯誤情況的信息。 此外, 頁框架提供使您可以將檢測消息插入 網(wǎng)頁的跟蹤模式。因此,用任何語 言編寫、使用任何組件模型并在任何操作系統(tǒng)上運行的程序,都可以訪問 XML Web services。 中提供了對創(chuàng)建 Web 服務(wù)器控件設(shè)計器(用于可視化設(shè)計工具,例如 Visual Studio)的增強支持。 Microsoft Visual C 2020 提供高級代碼編輯器、方便的用戶界面設(shè)計器、集成調(diào)試器和許多其他工具,以在 C 語言版本 和 .NET Framework 的基礎(chǔ)上加快應(yīng)用程序的開發(fā)。 C 語法簡化了 C++ 的諸多復(fù)雜性,同時提供了很多強大的功能,例如可為空的值類型、枚舉、委托、匿名 方法和直接內(nèi)存訪問,這些都是 Java 所不具備的。所有的變量和方法,包括 Main 方法(應(yīng)用程序的入口點),都封裝在類定義中。 除了這些基本的面向?qū)ο蟮脑恚?C 還通過幾種創(chuàng)新的語言結(jié)構(gòu)加快了軟件組件的開發(fā),其中包括: ? 封裝的方法簽名(稱為委托),它實現(xiàn)了類型安全的事件通知。 在 C 中,如果需要與其他 Windows 軟件(如 COM 對象或本機 Win32 DLL)交互,可以通過一個稱為 “Interop” 的過程來實 現(xiàn)。沒有單獨的頭文件,也不要求按照特定順序聲明方法和類型。 CLI 是一種國際標(biāo)準(zhǔn),是用于創(chuàng)建語言和庫在其中無縫協(xié)同工作的執(zhí)行和開發(fā)環(huán)境的基礎(chǔ)。 執(zhí)行 C 程序時,程序集將加載到 CLR 中,這可能會根據(jù)清單中的信息執(zhí)行不同的操作。下圖演示了 C 源代碼文件、基類庫、程序集和 CLR 的編譯時與運行時的關(guān)系。 除了運行時服務(wù), .NET Framework 還包含一個由 4000 多個類組成的內(nèi)容詳盡的庫,這些類被組織為命名空間,為從文件輸入和輸出到字符串操作、到 XML 分析、到 Windows 窗體控件的所有內(nèi)容提供多種有用的功能。s entry point, are encapsulated within class definitions. A class may inherit directly from one parent class, but it may implement any number of interfaces. Methods that override virtual methods in a parent class require the override keyword as a way to avoid accidental redefinition. In C, a struct is like a lightweight c