gpt4 book ai didi

c# - CLR 如何知道静态字段是否已被初始化?

转载 作者:行者123 更新时间:2023-12-02 18:20:20 25 4
gpt4 key购买 nike

关于静态字段/构造函数,我一直想知道一件事。

静态类在第一次引用其中一个字段时初始化,这很容易。

但是CLR怎么知道这是第一次呢?

最佳答案

CLR 维护一个包含已加载的所有类型及其初始化状态的表。如果 A 使用 B 的静态字段,则 CLR 知道 A 正在使用 B 并且在初始化 A 它还会初始化 B。因此,不会在每次访问时都检查依赖项是否已初始化。通过类型的依赖图来确保。

如果您对实现细节感兴趣,可以查看 CoreCLRDomainLocalModuleIsClassInitialized 方法。及其 usage当创建类的实例时。

我希望这能回答您的问题。

关于c# - CLR 如何知道静态字段是否已被初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35938653/

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