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有个连接池什么的
浙公网安备 33010602011771号