小编典典

在C#中,“静态”是什么意思?

c#

我真的对C#中static关键字的真实含义感到困惑。我在互联网上浏览了不同的文章,但是没有一篇文章能真正帮助我理解它的含义,其他来源也不可信。我知道Stack
Overflow有一些出色的头脑,可以帮助我理解static的真正含义,例如

  • 当它们被初始化时。
  • 静态方法,属性,类和构造函数
  • 静态vs只读vs常量

阅读 926

收藏
2020-05-19

共1个答案

小编典典

简而言之,静态有效地表示“与一种类型关联,而不是该类型的任何实例”。因此,无论您有0个实例还是一百万个实例,一个类型(在AppDomain内)都有
组静态变量。您不需要实例即可访问静态成员,等等。

静态变量初始化的 确切
点取决于是否还有静态构造函数,但从广义上讲,它是“一次,通常在类中发生任何重大事件之前”。(有关详细说明,请参见此博客文章。)

尽管readonly字段可以是静态的,也可以是实例的(即与类型有关或与类型的实例有关),但const始终是
隐式静态的(它们是编译时常量,因此每个字段只有一个副本是没有意义的)实例)。

有时您可能会static被描述为“在一个类型的所有实例之间共享”-我个人 不喜欢 该描述,因为它暗示必须至少有一个实例……而实际上,您不需要
任何 实例使用静态成员。我更喜欢将它们视为完全独立的,而不是在实例之间“共享”。

2020-05-19