在ASP.NET环境下,静态类最大的特点就是共享。
大家都知道,静态类是不能实例化的,我们直接使用它的属性与方法。
因此 我们可以做一些比较有意思的事情。比如说预热数据。
public static class StaticClass { public static int n = 0; public static void TestAdd() { n++; } }
- 网页 P1.aspx 调用 StaticClass.TestAdd(),并在页面上输出 n。
- 网页 P2.aspx 调用 StaticClass.TestAdd(),并在页面上输出 n。
- 访问者 V1 从客户端 C1 访问 P1.aspx,此时输出为 1。
- 访问者 V2 从客户端 C2 访问 P2.aspx,此时输出为 2。
- 访问者 V1 关闭浏览器,重新打开访问 P1.aspx,此时输出为 3。
只要 StaticClass 没有被重新编译,即使 P1.aspx、P2.aspx 被重新编译,每当调用 StaticClass.Add(),n 都会在前一个次的基础上加 1
也可以这样说,只要IIS没有重启或者网站没有重启,项目没有被重新发布,都是一直保持的。
时间: 2024-12-15 00:28:57