我有一个包含公共静态类和成员的程序集,它有一个静态构造函数,用于初始化所有静态成员。当我加载程序集时,我的所有成员都会被加载到内存中,如果是,那么系统会给出内存异常吗?
答案 0 :(得分:3)
a:静态构造函数只是因为你加载了一个程序集而没有被加载;确切地说, 执行的时间很复杂,取决于beforefieldinit
,当静态字段看起来像第一次被触摸时 - 但是"在它们之前的某个时刻首次访问"应该涵盖它:)
b:你是否使用足够的内存(在静态构造函数中)来导致OOM?如果你是:那么是的!如果没有,那么不!通常,答案是" no"。如果静态构造函数执行加载外部数据之类的操作,那么我认为你的静态构造函数做错了。
注意:当静态构造函数失败时,它将表示为TypeInitializationException
;原因将是.InnerException
。