C#的幾個基本概念

  1. CLR – Common Language Runtime編程

 
爲.NET應用程序提供運行環境。定位、加載和管理.NET類型,同時也負責一些底層細節的工做,如內存管理、建立應用程序域、線程和對象上下文邊界,安全檢查等等。
 
2. CTS – Common Type System
 
完整描述了運行庫所支持的全部可能的數據類型和編程結構,指定了這些實體之間如何交互,也規定了它們在.NET元數據格式中的表示。
 
CTS包括5種基本類型:class, interface, enum, delegate and struct
 
CTS可能的成員:構造器,終結器,靜態構造函數,嵌套類型,運算符,方法,屬性,索引器,字段,只讀字段,常量,事件
 
3. CLS – Common Language Specification
 
定義了一個讓全部.NET語言都支持的公共類型和編程結構的子集。這個能夠說是全部語言特性的一個子集,而CTS是全部語言特性的一個合集。
 
CLS定義了一套規則,當程序徹底遵照這套規則時,才能確保你的程序能被全部其它.NET語言正確調用。能夠經過特性[assembly: System.CLSCompliant(true)]來進行CLS規則驗證。
 
4. BCL - Basic Class Library
 
全部.NET語言均可以調用的一套公共類庫,封裝了不少最基本的類型和服務。
 
5. Managed/Unmanaged code
 
運行在CLR中的代碼叫作managed code,反之稱爲unmanaged code。
 
6. C#的優勢
 
不須要指針
自動管理內存 - 垃圾回收機制
面嚮對象語言
操做符重載
支持Attribute
泛型編程更安全
匿名函數的支持
簡化的委託/事件模型
partial class
3.5支持的特性有:
 
LINQ
匿名類型的支持
擴展方法來擴展示有類型
Lambda語法
新的初始化對象語法
7. IL, CIL或者MSIL
 
中間語言,或者成爲公共中間語言。全部的.NET語言代碼編譯後都轉換爲中間語言。目的是爲了支持多語言。
 
8. 程序集內容
 
主要包含了編譯過的IL指令集、類型metadata和manifest(程序集自己的metadata)。類型metadata的做用主要是反射、對象序列化、晚期綁定、wcf以及vs的智能感知等等。manifest除了記錄本程序集的版本、模塊號以外,它還記錄了讓程序集正常運轉的外部程序集信息。
 
9. JIT - just in time
 
即時編譯器。程序運行是嘗試編譯IL指令,生成機器可識別的機器碼,並保存編譯結果。下次調用相同代碼時不須要從新編譯。
 
10. namespace
 
簡單說就是對.NET類型的分組機制。咱們最經常使用到的系統namespace有System.Data, System.IO等等。除了System打頭的命名空間,最有用的還有以Microsoft開頭的命名空間,包含在其中的類型通常都和微軟操做系統服務相關,不能運行在其餘OS上,如MAC,Linux等等。
 
11. 查看IL,反編譯
 
使用.NET自帶工具ildasm能夠查看程序集IL。使用reflector能夠反編譯程序集,你能夠從http://www.red-gate.com/products/reflector/ 下載
 
12. .NET的跨平臺性
 
簡單說就是.NET是跨語言的平臺,同時也支持跨平臺的語言。跨語言的平臺是指它支持多種 編程語言,支持跨平臺的語言理論上是說.NET能夠在非Windows以外的OS上運行。不過,對於後者,MS自己並無作這個工做,僅僅有2個開源的架構在提供有限的支持:
相關文章
相關標籤/搜索