C# 中托管代码与非托管代码


非托管代碼

  • 不受 CLR 控制的應用程式未受管理

  • 不安全的代碼或未受管理的代碼是使用指標變數的代碼區塊。

  • unsafe 修飾詞允許在未受管理的代碼中使用指標。

讓我們看範例 –

範例

static unsafe void Main(string[] args) {
   int var = 20;
   int* p = &var;
   Console.WriteLine("Data is: {0} ", var);
   Console.WriteLine("Address is: {0}", (int)p);
   Console.ReadKey();
}

受管理代碼

受管理代碼是其執行由公共語言執行時期管理的代碼。它取得受管理的代碼並將其編譯成機器碼。之後執行代碼。此處的執行時期,即 CLR,提供自動記憶體管理、類型安全性等。

受管理代碼以高階語言撰寫,執行於 .NET 之上。它可以是 C#、F# 等。使用它們的編譯器編譯任何一種語言的代碼,不會產生機器碼。不過,您將取得中間語言代碼,由執行時期編譯和執行

稱為「未受管理代碼」的 C/C++ 代碼沒有這項權限。此程式為二進制檔,由作業系統載入記憶體。其餘部分由程式設計師負責處理。

更新於: 2020 年 6 月 22 日

3K+ 瀏覽次數

启动您的 职业生涯

完成课程即可获得认证

开始吧
广告