【C#】引用(Reference)&句柄(Handle)

先上总结:

引用:是编程语言的一种机制,用于直接访问对象。

句柄:是系统分配的"间接访问标识",本质上是一个“资源管理器”或"指针的封装"。

引用:

特点:

是语言级别的概念
指向堆中的对象或数据(自身存在栈里)

不需要开发者管理(自动GC管理)

用起来与普通变量类似,底层逻辑是指针

生命周期绑定在对象上

本质:
是一个托管指针

句柄:

特点:

是操作系统或框架层的概念

通常是一个整数ID(不是直接的指针)

用于间接引用系统资源(文件、窗口、线程、协程等等)
通过句柄查表找到实际资源

本质:

资源引用编号,常用于安全性+抽象

不能直接访问资源本体,必须“通过句柄访问”。

区别:

引用:所属语言级别(如C#)、本质上是托管指针、它指向了堆上的对象、操作方式是直接访问、生命周期由GC控制,安全性较低(可直接访问)。

句柄:所属系统级别或框架级别(Unity,WinAPI),本质上是整数ID或结构体,它指向了系统资源(线程、文件、窗口、协程等等),操作方式是通过API等的间接访问,生命周期控制由系统或者用户手动控制,安全性更高(系统需要校验句柄的合法性)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值