这两种情况下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引用? 或者 它将在高频堆?
中创建一个静态实例静态字段与任何静态字段一样,无论类是静态还是非静态。
静态类只是 C# 的一个技巧,用于确保所有成员都是静态的,仅此而已。在 .NET 中,静态类甚至不存在:C# 静态类将被转换为具有私有实例构造函数的 .NET 实例类。这样就无法构造该类的实例。