freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

net體系結(jié)構(gòu)-展示頁

2025-07-04 07:13本頁面
  

【正文】 中,使用引用類型類似于通過指針來訪問變量,而在Visual Basic中,與引用類型最相似的是對象,Visual Basic 6總是通過引用來訪問對象。它的一個特性是值類型和引用類型之間有明顯的區(qū)別。在調(diào)試器上交替調(diào)試方法時,Visual Studio IDE(Intergrated Development Environment,集成開發(fā)環(huán)境)提供了這樣的工具(不是CLR提供的)?!? 在不同的語言之間調(diào)用方法時,應(yīng)能在調(diào)試器中交替調(diào)試這些方法調(diào)用,即調(diào)試不同語言編寫的源代碼?!? 一個對象應(yīng)能直接調(diào)用用其他語言編寫的另一個對象的方法。特別是:● 用一種語言編寫的類應(yīng)能繼承用另一種語言編寫的類。不可能在調(diào)試器上交替調(diào)試不同語言的代碼。不僅如此,COM體系結(jié)構(gòu)還不允許利用繼承實現(xiàn),即它喪失了面向?qū)ο缶幊痰脑S多優(yōu)勢。重要的是組件僅能通過COM運行庫與其他組件通信。根據(jù)相關(guān)組件的線程模型,需要在不同線程的內(nèi)存空間和運行組件之間編組數(shù)據(jù),這可能造成很大的性能損失。這就足夠了嗎?COM是一個二進(jìn)制標(biāo)準(zhǔn),允許組件實例化其他組件,調(diào)用它們的方法或?qū)傩?,而無須考慮編寫相關(guān)組件的語言。首先,需要了解一下語言互操作性的準(zhǔn)確含義。畢竟,C++和Java都使用相同的面向?qū)ο蟮姆独?,但它們?nèi)圆皇强山换ゲ僮鞯恼Z言。,即需要使用傳統(tǒng)的面向?qū)ο蟮姆椒▉砭幊獭K鼈儾恍枰С秩魏蜟OM基礎(chǔ)結(jié)構(gòu),例如,它們不是派生自IUnknown,也沒有對應(yīng)的GUID。不熟悉面向?qū)ο蟾拍畹淖x者應(yīng)參考第53章(見隨書附贈光盤中對應(yīng)的章節(jié)),獲得更多的信息。 面向?qū)ο蠛徒涌诘闹С?NET的語言無關(guān)性還有一些實際的限制。現(xiàn)在應(yīng)詳細(xì)討論一下IL的主要特征。一般情況下,大多是為了方便。但是,COM+仍然是一個重要工具。如果CLR把代碼標(biāo)識為內(nèi)存類型安全是非常重要的,就需要使用其他一些語言編寫源代碼(如C或Visual Basic 2010)。另外,在使用托管類時,還需要使用非標(biāo)準(zhǔn)C++功能。實際上,托管C++代碼比C代碼更優(yōu)越的一點是可以在托管C++代碼中調(diào)用非托管C++類,而不必采用COM互操作功能。C++的一個有趣的問題是在編譯成托管代碼時,編譯器可以生成包含內(nèi)嵌本地可執(zhí)行程序的IL?,F(xiàn)有的C++源代碼會繼續(xù)編譯為本地可執(zhí)行代碼,而不會有修改。2. Visual C++ 2010Visual C++ 6有許多Microsoft對Windows的特定擴(kuò)展。Visual Basic 2010只編譯為中間語言,就像C一樣。雖然這意味著其中的工作大大減輕,但用戶仍需要檢查新的Visual Basic 2010代碼,以確保項目仍可按預(yù)期方式正確工作,因為這種轉(zhuǎn)換并不能達(dá)到完美無缺的程度。但大多數(shù)修改工作都可以由Visual Studio 2010(Visual Studio的升級版本,)自動完成。Visual Basic 6在2002年升級為Visual Basic .NET,對Visual Basic進(jìn)行的改變非常大,完全可以把Visual Basic當(dāng)作是一種新語言。例如,它與COM(Component Object Model,組件對象模型)的高度集成,并且只把事件處理程序作為源代碼顯示給開發(fā)人員,大多數(shù)代碼隱藏不能用作源代碼。1. Visual Basic 2010Visual Basic 6在升級到Visual Basic .NET 2002時,經(jīng)歷了一番脫胎換骨的變化, Framework的第1版中。簡而言之,就是能將任何一種語言編譯為中間語言,編譯為中間語言的代碼可以與從其他語言編譯過來的代碼進(jìn)行交互操作。即編譯器不知道運行代碼的處理器的類型,例如該處理器是兼容x86的處理器還是Alpha處理器,這超出了基本操作的范圍。傳統(tǒng)的編譯器會優(yōu)化代碼,但它們的優(yōu)化過程是獨立于運行代碼的特定處理器的。這解釋了為什么托管IL代碼幾乎和本地機(jī)器代碼的執(zhí)行速度一樣快,但是并沒有說明為什么Microsoft認(rèn)為這會提高性能。Microsoft認(rèn)為這個過程要比一開始就編譯整個應(yīng)用程序代碼的效率高得多,因為任何應(yīng)用程序的大部分代碼實際上并不是在每次運行期間都執(zhí)行。JIT編譯器并不是把整個應(yīng)用程序一次編譯完(這樣會有很長的啟動時間),而是只編譯它調(diào)用的那部分代碼(這是其名稱由來)。IL總是即時編譯的(稱為JIT編譯),而Java字節(jié)碼常常是解釋性的。,因為在編寫本書時,.NET的完整實現(xiàn)只能用于Windows平臺,但是人們正在積極準(zhǔn)備,使它可以用于其他平臺(參見Mono項目,參見)。 平臺無關(guān)性首先,這意味著包含字節(jié)碼指令的同一文件可以放在任一平臺中,運行時編譯過程的最后階段可以很輕松地完成,這樣代碼就可以運行在特定的平臺上。Microsoft中間語言與Java字節(jié)碼共享一種理念:它們都是低級語言,語法很簡單(使用數(shù)字代碼,而不是文本代碼),可以非常快速地轉(zhuǎn)換為本地機(jī)器碼。(2) CLR把IL編譯為平臺專用的代碼。但是,在CLR執(zhí)行編寫好的源代碼(在C中或其他語言中編寫的代碼)之前,需要編譯它們。 公共語言運行庫.NET Framework的核心是其運行庫執(zhí)行環(huán)境,稱為公共語言運行庫(CLR)。.NET支持的一些特性,C并不支持?!? 它是一種基于現(xiàn)代面向?qū)ο笤O(shè)計方法的語言,在設(shè)計它時,Microsoft還吸取了其他所有類似語言的經(jīng)驗,這些語言是近20年來面向?qū)ο笠?guī)則得到廣泛應(yīng)用后才開發(fā)出來的。由于這種依賴性,在開始編寫C程序前,這就是本章的目的所在。對于C語言來說,可以得出兩個重要的結(jié)論:(1) C。第1章 .NET體系結(jié)構(gòu)1第 章.NET體系結(jié)構(gòu)本章內(nèi)容:● ● Microsoft中間語言(Microsoft Intermediate Language,MSIL或簡稱為IL)的優(yōu)點● 值類型和引用類型● 數(shù)據(jù)類型化● 理解錯誤處理和特性● 程序集、.NET基類和名稱空間整本書都將強調(diào),C語言不能孤立地使用, Framework一起考慮。C,這表示用C Framework中運行。(2) 在許多情況下,C。 CC是一種相當(dāng)新的編程語言,C的重要性體現(xiàn)在以下兩個方面:● Framework一起使用而設(shè)計的(.NET Framework是一個功能非常豐富的平臺,可開發(fā)、部署和執(zhí)行分布式應(yīng)用程序)。有一個很重要的問題要弄明白:C就其本身而言只是一種語言。而C語言支持的另一些特性,.NET卻不支持(如運算符重載)!但是,因為C,所以如果要使用C高效地開發(fā)應(yīng)用程序,理解Framework就非常重要。通常將在CLR控制下運行的代碼稱為托管代碼(managed code)。編譯分為兩個階段:(1) 把源代碼編譯為Microsoft中間語言(IL)。這個兩階段的編譯過程非常重要。對于代碼,這種精心設(shè)計的通用語法有很重要的優(yōu)點:平臺無關(guān)性、提高性能和語言的互操作性。換言之,這與編譯為Java字節(jié)碼就會得到Java平臺無關(guān)性是一樣的。 提高性能前面把IL和Java做了比較,實際上,IL比Java字節(jié)碼的作用還要大。Java的一個缺點是,在運行應(yīng)用程序時,把Java字節(jié)碼轉(zhuǎn)換為內(nèi)部可執(zhí)行代碼的過程會導(dǎo)致性能的損失(但在最近,Java在某些平臺上能進(jìn)行JIT編譯)。代碼編譯過一次后,得到的本地可執(zhí)行程序就存儲起來,直到退出該應(yīng)用程序為止,這樣在下次運行這部分代碼時,就不需要重新編譯了。使用JIT編譯器,從來都不會編譯這種代碼。其原因是編譯過程的最后一部分是在運行時進(jìn)行的,JIT編譯器確切地知道程序運行在什么類型的處理器上,可以利用該處理器提供的任何特性或特定的機(jī)器代碼指令來優(yōu)化最后的可執(zhí)行代碼。這是因為傳統(tǒng)的編譯器是在發(fā)布軟件之前編譯為本地機(jī)器可執(zhí)行的代碼。 語言的互操作性使用IL不僅支持平臺無關(guān)性,還支持語言的互操作性。那么除了C之外,?。Visual Basic 語言對Visual Basic 6進(jìn)行了很大的演化,也就是說,Visual Basic 。另外,它不支持繼承的實現(xiàn),Visual Basic 。已有的Visual Basic 6代碼不能編譯為當(dāng)前的Visual Basic 2010代碼(或Visual Basic .NET 2002002005和2008代碼),把Visual Basic 6程序轉(zhuǎn)換為Visual Basic 2010時,需要對代碼進(jìn)行大量的改動。如果把Visual Basic 6項目讀到Visual Studio 2010中,Visual Studio 2010就會自動升級該項目,也就是說把Visual Basic 6源代碼重寫為Visual Basic 2010源代碼。這種語言升級的一個副作用是不能再把Visual Basic 2010編譯為本地可執(zhí)行代碼了。如果需要繼續(xù)使用Visual Basic 6編寫程序,就可以這么做, Framework,如果繼續(xù)把Visual Studio作為開發(fā)環(huán)境,就需要安裝Visual Studio 6。Visual C++ .NET又新增了更多的擴(kuò)展內(nèi)容, Framework。如果讓C++ Framework中運行,就可以在代碼的開頭添加下述命令:using 還可以把標(biāo)記/clr傳遞給編譯器,這樣編譯器假定要編譯托管代碼,因此會生成中間語言,而不是本地機(jī)器碼。這表示在C++代碼中可以把托管類型和非托管類型合并起來,因此托管C++代碼:class MyCl
點擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1