我真的对C#中static关键字的真实含义感到困惑。我在互联网上浏览了不同的文章,但是没有一篇文章能真正帮助我理解它的含义,其他来源也不可信。我知道Stack Overflow有一些出色的头脑,可以帮助我理解static的真正含义,例如
简而言之,静态有效地表示“与一种类型关联,而不是该类型的任何实例”。因此,无论您有0个实例还是一百万个实例,一个类型(在AppDomain内)都有 一 组静态变量。您不需要实例即可访问静态成员,等等。
静态变量初始化的 确切 点取决于是否还有静态构造函数,但从广义上讲,它是“一次,通常在类中发生任何重大事件之前”。(有关详细说明,请参见此博客文章。)
尽管readonly字段可以是静态的,也可以是实例的(即与类型有关或与类型的实例有关),但const值 始终是 隐式静态的(它们是编译时常量,因此每个字段只有一个副本是没有意义的)实例)。
readonly
const
有时您可能会static被描述为“在一个类型的所有实例之间共享”-我个人 不喜欢 该描述,因为它暗示必须至少有一个实例……而实际上,您不需要 任何 实例使用静态成员。我更喜欢将它们视为完全独立的,而不是在实例之间“共享”。
static