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

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