在c#中,有很强的数据类型,而数据类型又分为静态和非静态。这里我们讨论下静态类型中的访问情况。
页面test.aspx
代码如下:
1
public
static
int
testid;
2
3 protected void Page_Load( object sender, EventArgs e)
4
5 {
6
7 testid = int .Parse(Request.QueryString[ " testid " ]);
8
9 for ( int i = 0 ; i < 99999999 ; i ++ )
10
11 {
12
13 }
14
15 Response.Write(testid);
16
17 }
2
3 protected void Page_Load( object sender, EventArgs e)
4
5 {
6
7 testid = int .Parse(Request.QueryString[ " testid " ]);
8
9 for ( int i = 0 ; i < 99999999 ; i ++ )
10
11 {
12
13 }
14
15 Response.Write(testid);
16
17 }
同时打开2个页面输入地址
1. test.aspx?testid=1
2. test.aspx?testid=2
结果
1. test.aspx?testid=1 显示 1
2. test.aspx?testid=2 显示 1
修改后:
1
public
int
testid;
2
3 protected void Page_Load( object sender, EventArgs e)
4
5 {
6
7 testid = int .Parse(Request.QueryString[ " testid " ]);
8
9 for ( int i = 0 ; i < 99999999 ; i ++ )
10
11 {
12
13 }
14
15 Response.Write(testid);
16
17 }
2
3 protected void Page_Load( object sender, EventArgs e)
4
5 {
6
7 testid = int .Parse(Request.QueryString[ " testid " ]);
8
9 for ( int i = 0 ; i < 99999999 ; i ++ )
10
11 {
12
13 }
14
15 Response.Write(testid);
16
17 }
结果:
同时打开2个页面输入地址
1. test.aspx?testid=1
2. test.aspx?testid=2
结果
3. test.aspx?testid=1 显示 1
4. test.aspx?testid=2 显示 2
正常
原因分析
差别就在与第一种方法用了,static静态类型,而第二种没有,这种情况说,在c#中,静态类型的数据类型在程序运行时是共享的。而非静态类型多个页面同时执行是互不影响的,一个页面请求操作分配一个内存空间,而static在所有的请求中只分陪一次内存空间,从而节省资源。
综上所属正确使用数据类型在合理利用服务器资源是很重要的。