可能重复:
c# 中的静态方法是什么?
在从这么多论坛进行研究之后,我发现很难弄清楚静态和非静态(实例)成员的实际概念,我决定在这里提出我的问题:
静态成员和非静态成员有什么区别?
static
方法可以直接从类中访问,而方法non-static
(或我喜欢称之为实例方法)必须从实例中访问。这就是为什么需要对实例方法进行实例化,而对于静态方法则不需要。
在 OOPstatic variables
中,用于不能由实例变量存储的值。static methods
无法访问类中的实例方法或变量。当然这是有道理的,因为该静态方法不知道我们试图引用的类的哪个实例。
例如,假设您想计算一个类的实例数?您将如何将其存储在单个实例中?
参考:
static
成员是每个类一个,但非静态成员是每个实例一个。
static
成员通过封装它们的类名访问,但非静态成员通过对象引用访问。
static
成员不能在不实例化对象的情况下使用非静态方法,但非静态成员可以static
直接使用成员。
static constructor
用于初始化静态字段,但对于非静态字段,使用普通实例构造函数。
有关性能相关点,请参见此处。