C#等 句柄是什么?
1、什么是句柄?
? ? ? ?句柄(Handle)是一個是用來標識對象或者項目的標識符,可以用來描述窗體、文件等,值得注意的是句柄不能是常量—引自科學(xué)百科
? ? ? ?通過參考網(wǎng)上各路大神的解釋,個人認為:句柄就是健康碼,它的作用就是讓你找到所需的對象去到了何處,因為你始終都可以根據(jù)健康碼找到對象的所在地,然后找到對象給他做核酸檢測。健康碼(句柄值)是國家(操作系統(tǒng))分給你的,你沒有自定義的權(quán)利。
? ? ? ?在操作系統(tǒng)中,我們想要操作一個對象,就要知道它的地址,但是對象的內(nèi)存地址總是變化,因為在windows系統(tǒng)中的內(nèi)存管理一般會將當(dāng)前處于空閑狀態(tài)的對象的內(nèi)存釋放掉,當(dāng)需要訪問的時候再重新提交分配物理內(nèi)存,從而導(dǎo)致對象的物理地址是變化的。此時windows就搞了一個玩意—句柄,句柄用來管理對象的地址(句柄表),不管對象的地址如何變化,我都可以通過訪問句柄來拿到對象的實時地址,進而操作對象。句柄值是操作系統(tǒng)給的,你不能定義。
2、句柄與普通指針的區(qū)別?
? ? ?指針指向系統(tǒng)中物理內(nèi)存的地址,而句柄是windows在內(nèi)存中維護的一個對象內(nèi)存物理地址列表的整數(shù)索引,句柄是一種指向指針的指針。也就是管理指針(內(nèi)存地址)的工具。
? ? ?句柄的作用范圍也是存在局限性的,你只能用句柄最終調(diào)用到對象,并作一些系統(tǒng)允許你做的事情,但是你拿到指針的話就能干任何事情了,比如破壞對象。當(dāng)然,句柄的優(yōu)點也是顯而易見的,句柄很明顯更方便管理,部分場景處理對象時比指針快。
本文目的在于為各位初學(xué)者解釋兩者區(qū)別,更多的知識可翻閱其他博主的文章,感謝。
建議閱讀:
https://blog.csdn.net/swordarcher/article/details/81744930
https://blog.csdn.net/macrossdzh/article/details/4588681
————————————————
版權(quán)聲明:本文為CSDN博主「張一默」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_45207460/article/details/121672498
總結(jié)
以上是生活随笔為你收集整理的C#等 句柄是什么?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ctfmon.exe是什么进程?
- 下一篇: SAP 表汇总