正如标题,这样的资料网上很多,也说的很到位,但是都感觉解释的很多,理论性过强,在这里我简单的总结和概括下他们之间的区别,可以一目了然:
一.静态类和非静态类
Definition:
静态类可以视为类库中都是单一的过程,不存在“状态”的概念;
非静态类是存储有状态的一类操作过程
Summary:
非静态类可以包含静态方法;
静态类只能包含静态方法(不允许有非静态方法的存在)
二.静态方法和非静态方法(实例方法)
Priority in Memory When Class Loaded:
类在加载时先加载:静态变量 -->静态方法 -->非静态成员/变量(是在类实例化之后)
Access Different:
在C#中,非静态方法可以访问静态成员和非静态成员,但是静态方法只能访问静态成员
(静态成员是一种大家共享的资源,而静态方法并不属于某个实例,故无法调用非静态成员(实例成员))