👋🏻 我正在看一个C#学习视频,在里面,作者有一些private static readonly Func<....> GetMoviesAsync = ....;属性。
private static readonly Func<....> GetMoviesAsync = ....;
作者说这些静态属性是在应用程序启动时生成/编译的。我以为静态属性是在 * 首次访问 * 时生成的..而不是应用程序启动时?
sshcrbum1#
没有任何精确的时刻。如果有一个静态构造函数,那么所有的静态属性都保证在构造函数体执行之前被初始化。如果没有静态ctor,那么静态属性保证在类第一次使用之前被初始化。我所说的“之前”并没有严格定义。我想,在CLR认为合适的任何时刻。
1条答案
按热度按时间sshcrbum1#
没有任何精确的时刻。如果有一个静态构造函数,那么所有的静态属性都保证在构造函数体执行之前被初始化。如果没有静态ctor,那么静态属性保证在类第一次使用之前被初始化。我所说的“之前”并没有严格定义。我想,在CLR认为合适的任何时刻。