程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> [CLR via C#]1.6Framework類庫~1.9與非托管代碼的互操作性

[CLR via C#]1.6Framework類庫~1.9與非托管代碼的互操作性

編輯:C#入門知識

1.6 Framework類庫

1. .NET Framework中包含了Framework類庫(Framework Class Library,FCL)。

2. FCL是一組DLL程序集的統稱,其中含有數千個類型定義,每個類型公開一些功能。   1.7 通用類型系統 1. CLR是完全圍繞類型展開的。 2. 類型為應用程序和其他類型公開了功能。通過類型,用一種編程語言寫的代碼能與另一種語言寫的代碼溝通。 3. 由於類型是CLR的根本,所有MicroSoft指制定了一個正式的規范,即"通用類型系統"(Common Type System,CTS),它描述了類型的定義和行為。 4. CTS規定,一個類型可以包含一個或者多個成員。比如:字段、方法、屬性、事件等。 5. CTS還指定了類型可視性規則以及類型成員的訪問規則。如privae、family(C#:protected)、family and assembly(C#:沒有)、assembly(C#:internal)、family or assembly(C#:protected internal)、public 6. CTS規定所有類型最終必須從預定義的System.Object類型繼承。   1.8 公共語言規范 1. MicroSoft定義了一個"公共語言規范"(Common Language Specification,CLS),它詳細定義了一個最小的功能集。任何編譯器生成的類型要想兼容於其他"符合CLS、面向CLS的語言"所生成的組件,就必須支持這個最小的功能集。   2. CLS定義了所有語言必須支持的一個最小的功能集。   1.9 與非托管代碼的互操作性 1.CLR提供了一些機制,允許在應用程序中同時包含托管代碼和非托管代碼。具體說,CLR支持三種互操作情形。     1)托管代碼能調用DLL中俄非托管函數。托管代碼采取一種名為P/Invoke(Platform Invoke)的機制來調用DLL中的包含的函數。     2)托管代碼可使用現有的COM組件(服務器)。     3)非托管代碼可使用托管類型(服務器)。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved