C# 静态和只读成员的内存布局
在.Net中,const和static readonly在内存分配方面是否属于包含类?它们是否按实例分配(即使它们属于类型本身) 编辑:C# 静态和只读成员的内存布局,c#,memory-management,C#,Memory Management,在.Net中,const和static readonly在内存分配方面是否属于包含类?它们是否按实例分配(即使它们属于类型本身) 编辑: 如何处理序列化和sizeof操作?静态类的成员属于类型,而不是实例。类型本身被加载到加载器堆,特别是在加载类型后的高频堆中。因此,对于您的问题:不,它们不是按类的每个实例分配的静态类的成员属于类型,而不是实例。类型本身被加载到加载器堆,特别是在加载类型后的高频堆中。因此,对于您的问题:不,它们不会分配给类的每个实例静态字段的内存,无论是否为常量,都不会分配给每
如何处理序列化和sizeof操作?
静态
类的成员属于类型
,而不是实例。类型
本身被加载到加载器堆
,特别是在加载类型后的高频堆
中。因此,对于您的问题:不,它们不是按类
的每个实例分配的静态
类的成员属于类型
,而不是实例。类型
本身被加载到加载器堆
,特别是在加载类型后的高频堆
中。因此,对于您的问题:不,它们不会分配给类的每个实例静态字段的内存,无论是否为常量,都不会分配给每个实例。此外,static const
-const
自动被视为每个类一个
在常量
和静态只读
字段之间存在,但它们都不会更改相应类实例的占用空间。对于静态
字段的内存,无论是否为常量,都不会分配给每个实例。此外,static const
-const
自动被视为每个类一个
在const
和static readonly
字段之间存在,但它们都不会更改相应类实例的占用空间。静态变量存储在加载程序堆中,其中类型信息存储为加载的类型。
这意味着在加载静态变量的类型之前,不会分配静态变量的存储。静态变量存储在加载程序堆中,其中类型信息存储为加载的类型。
这意味着在加载静态变量的类型之前,不会分配静态变量的存储。加载类型时,静态成员的内存分配一次,因为它属于类型本身
至于const
它不会消耗内存,它们在运行时根本不存在,它们被烧成IL。换句话说,它们是硬编码的。在加载类型时,静态
成员的内存分配一次,因为它属于类型本身
至于const
它不会消耗内存,它们在运行时根本不存在,它们被烧成IL。换句话说,它们是硬编码的。可能重复的可能重复的