asp.net中同时访问带有静态类型变量情况的区别与理解

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个页面输入地址

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个页面输入地址

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在所有的请求中只分陪一次内存空间,从而节省资源。

综上所属正确使用数据类型在合理利用服务器资源是很重要的。

 

原文地址:http://www.joleye.com/viewinfo-520.aspx

monitor-play-button.png
monitor-play-button.png

转载于:https://www.cnblogs.com/jole/archive/2011/08/17/aspnet_static.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值