gpt4 book ai didi

c# - .net 中的 "new "关键字实际上是做什么的?

转载 作者:IT王子 更新时间:2023-10-28 23:33:02 27 4
gpt4 key购买 nike

我知道 new 关键字正在调用类构造函数,但我们在哪个阶段为类分配内存?

据我了解,它应该对应于 GCHandle.Alloc(Object) 方法,但我找不到连接。

最佳答案

new 运算符在 CLR 中实现。它从垃圾收集堆中分配内存并执行类构造函数。

GCHandle.Alloc() 相同。这利用了 GC 中的单独机制来创建对对象的引用,这些引用存储在单独的表中并被扫描,除了在垃圾回收期间通常发现的对象引用。您必须通过 Alloc() 一个现有的对象引用,它会添加另一个。用于创建弱引用和固定引用以及允许非托管代码存储对托管对象的引用并使其保持事件状态的机制。 gcroot<> template class在 C++/CLI 中利用了它。

关于c# - .net 中的 "new "关键字实际上是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11504910/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com