1,在非静态类声明静态字段静态方法,可以Person.test(),Person.leg这样直接调用。

public class Person
{
    public static string leg;
    public static void test()   //如果去掉static,则必须实例化Person对象,才能调用test方法
    {
        Console.WriteLine("111");
    }
}

  ---总结非静态变量和方法是属于对象的,有对象才能使用。静态变量和静态方法是属于类的,不用对象就可以调用。

2,静态类特征

  (1):仅包含静态成员,不能包含非静态成员,包含也没有意义,因为静态类不能实例化,所以也不能调用非静态成员。
  (2):无法实例化。
  (3):是密封的。
  (4):不能包含实例构造函数

  ----静态方法只能被重载,而不能被重写,因为静态方法不属于类的实例成员;

  ----静态类在内存中使一直有位置的。

3,非静态类特征

  (1),注意,非静态类可以包含静态的方法、字段、属性或事件;

  

 

@备注:
(1),在C#中静态成员是比较敏感的东西,在不是十分确认的情况下不要使用。
(2),建议更多地使用一般类(非静态类)。
(3),Asp.net 静态字段生命周期结束时间???
  静态字段(在自定义中),可以跨页面访问,关闭了浏览器,再打开仍能访问。关闭再打开IIS仍然可以访问。重启服务器时就访问不到了。
  --- 后来经查 静态字段在第一次访问时加载,而在Global.asax的void Application_End(object sender, EventArgs e) 触发时结束。那么void Application_End(object sender, EventArgs e) 什么时候结束呢?(IIS重启也没有结束的)
  情况一:web.config被修改了
  情况二:重启服务器
  情况三:经查好像IIS有个连接池什么的

 

posted on 2014-12-19 13:15  学到老死  阅读(211)  评论(0)    收藏  举报