我最近開始研究 C# 編程(我之前只研究過 C)。我開始知道我們需要使用不安全的上下文來在 C# 程序中使用指針作為Microsoft 文檔頁面。不使用指針的優點之一是使用不安全的代碼會帶來安全性和穩定性風險。但是我們不需要使用不安全的上下文來調用 C 中可能包含編寫不良的代碼或安全漏洞的函數。公共語言運行時無法檢測這些 C 函數中的問題。這些是我的問題為什么即使 CLR 無法檢測到這些代碼中的問題,也不需要使用不安全的上下文來執行用 C 編寫的函數?不使用不安全上下文來調用用 C 編寫的函數有什么好處?
1 回答

絕地無雙
TA貢獻1946條經驗 獲得超4個贊
為什么即使 CLR 無法檢測到這些代碼中的問題,也不需要使用不安全的上下文來執行用 C 編寫的函數?
不安全模式與被調用的方法不安全無關,C# 代碼也同樣不安全。不安全模式是關于繞過的內存管理。如果您通過 CLR(如此托管)分配變量,這些變量被傳遞到 C++ 庫,如 Win32 庫,CLR 仍然可以管理使用的內存段,因為它們仍然是 CLR 變量。
不使用不安全上下文來調用用 C 編寫的函數有什么好處?
如果您不需要不安全的內存分配,則使用unsafe
上下文沒有意義。
- 1 回答
- 0 關注
- 217 瀏覽
添加回答
舉報
0/150
提交
取消