首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 使用不安全代碼與指標操作

     編輯:關於C語言

不安全代碼概念

為了維護型別安全,C# 預設不支援指標運算。但可透過 unsafe 關鍵字定義允許使用指標的「不安全內容」。

注意:在 CLR 中,不安全代碼指「無法驗證的代碼」。C# 的不安全代碼不一定危險,只是其安全性無法由 CLR 驗證。

基本範例

宣告一個接受 int* 的不安全方法,將指標指向的值加倍:

unsafe static void Add(int* p)
{
    *p += *p;
}

在 Main 中呼叫(同樣需標記 unsafe):

unsafe static void Main()
{
    int i = 5;
    Add(&i);
    Console.Write(i);  // 輸出 10
    Console.Read();
}

編譯選項

編譯包含不安全代碼的專案,必須指定 /unsafe 選項:

csc /unsafe test.cs

或在 Visual Studio 專案屬性「建置」頁面勾選「允許不安全代碼」。

適用場景與風險

  • 與非受控 API 互操作(如 Windows API、C++ DLL)。
  • 效能極度敏感的陣列/記憶體操作。
  • 風險:繞過型別安全與記憶體保護,可能導致存取違規、資料損毀、安全性漏洞。僅在必要時使用,並嚴格測試。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved