例如: public static class Test { public static IList<int> iList = new List<int>(100); public static void MethodA() { // coding... iList.Add(0); // 这样是可以的。静态方法中访问静态成员 } public void MethodB() { // coding... MethodA(); // 这样是【错误】的。在非静态方法里尝试访问静态成员 iList.Add(1); // 这样是【错误】的。道理一样 } }
public class TryGo { public void Go() { Test.MethodA(); // 这样可以访问,通过类名直接访问静态方法 Test.iList.Add(2); // 这样可以访问,通过类名访问静态属性 Test t = new Test(); t.MethodB(); // 这样可以访问,通过实例访问非静态成员 t.MethodA(); // 这样是【错误】的,实例不能访问静态成员 t.iList.Add(3); // 这样是【错误】的,实例不能访问静态成员 } }