c#内存分配:静态类和静态实例的区别

本文关键字:静态 实例 区别 静态类 内存 分配 | 更新日期: 2023-09-27 18:10:44

CLR如何在这两种情况下分配内存:
它们都分配在静态内存区域吗?

static class A 
{
    //Some methods
}

class A 
{
    //Some methods    
}
class B
{
    static A inst = new A();
    //Some methods
}

对于下面的语句,编译器是否会

static A inst = new A();

在堆中分配A并将其分配给静态引用inst reference?它将在High Frequency heap中创建一个静态实例。

c#内存分配:静态类和静态实例的区别

静态字段与任何静态字段一样,无论类是静态还是静态。

静态类只是一种确保所有成员都是静态的语言,仅此而已。在。net中,静态类甚至不存在:静态类将被转换为带有私有实例构造函数的"普通"类。这样就不能构造该类的实例。