一、C# 概述
2019-11-17 02:23:43
供稿:網友
一、C# 概述
1、托管執行環境2、程序集3、關鍵字:C#保留字4、除了C#定義的關鍵字之外,開發者可以提供他們自己的名稱,編程語言將這些名稱稱為標識符5、如果關鍵字包含一個"@"前綴,那么也可作為標識符使用,例如,可將一個局部變量命名為@return6、變量:變量是一個內存當中存儲位置的符號名稱,程序以后可以對這個存儲位置進行賦值和修改操作,聲明一個變量就是定義它,需要:1、變量要引用的數據的類型 2、指派一個標識符(變量名)操作值類型的變量,相當于對內存的直接尋址,變量就是申請一段內存的并為其取一個別名。7、數據類型數據類型,或者簡稱類型,是對具有相似特征和行為的個體的一個分類。在編程語言中,類型是被賦予了相似特性的一些個體的一個定義8、聲明一個局部變量之后,必須在引用它之前為它賦一個值,賦值的結果是能用變量標識符來引用存儲在內存當中的值。9、字符串是不可變的所有string類型的數據,不管是不是字符串字面量(直接量),都是不可變的(或者說是不可修改的)。也就是可以將存儲這個字符串值的內存首地址賦值給一個string類型的變量,但是不可以改變這段內存存儲的值,這個值是固定的,如果想要改變這個string類型變量的值,只能重新申請一段內存,存儲一個新的字符串,然后將新的引用(內存首地址)賦值給這個string類型變量。也就是說:你不能修改變量最初引用的數據,只能重新對變量進行賦值,讓它指向內存中的一個新位置。10、格式化字符串11、托管執行和公共語言基礎結構處理器不能直接解釋一個程序集。程序集采用的是另一種語言(非C#),即公共中間語言(Common Intermediate Language, CIL),或者簡稱為中間語言(IL) MSIL(Microsoft IL)C#編譯器只是將C#源代碼文件轉換成這種中間語言。為了將CIL代碼轉換成處理器能夠理解的機器碼,還要執行一個額外的步驟(該步驟通常是在執行時完成)。這個步驟涉及到C#程序執行中的一個重要元素:VES(Virtual Execution System,虛擬執行系統)。VES偶爾也被稱為運行時。它根據需要來編譯CIL代碼,這個過程為即時編譯或者JIT編譯(just-in-time compilation)。假如代碼在像"運行時"這樣的一個"代理"的上下文中執行,就將這些代碼稱為托管代碼(managed code),而在運行時的控件下執行的過程稱為托管執行(managed execution)。之所以叫托管代碼,是因為"運行時"管理著諸如內存分配、安全性和JIT編譯等方面,從而控件了主要的程序行為。執行過程中不需要“運行時”的代碼稱為非托管代碼(unmanaged code)。運行時,這個術語既可能指“程序執行的時候”,也可能指“虛擬執行系統”。一般用執行時表示程序執行時,用運行時來表示負責管理C#程序執行的代理。VES規范被包含在一具包容面更廣的規范中,即CLI(Common Language Infrastructure,公共語言基礎結構)規范,作為一個國際性標準,CLI包含了以下幾方面的規范。1、VES或“運行時”2、CIL3、為語言互操作性提供支持的一個類型系統,稱為CTS (Common Type System,公共類型系統)。4、如何編寫能通過各種CLI兼容語言訪問的庫的指導規則,這部分內容具體放在公共語言規范(Common Language Specification , CLS)中5、使各種服務能被CLI(包括程序集的布局或文件格式規范)識別的無數據。6、一個公共編程框架,稱為基類庫(Base Class Library,BCL),所有語言的開發者都能利用它。假如在一個CLI實現的上下文中行動 ,那么程序員不需要直接編寫代碼,就能使用大量服務和特性,包括如下方面:1、語言互操作性2、類型安全3、代碼訪問安全性4、垃圾回收5、平臺可移植性6、BCL,提供開發者能夠依賴的一個大型代碼庫。1.8、CIL和ILDASM使用ILDASM 對一個程序集(.dll .exe) 進行反匯編生成對應的CIL