社区
C#
帖子详情
的ASP.net下static变量和applicstion变量的区别?
sampo01
2004-11-04 09:40:21
两者都是全局变量,但是我想知道两都在初始化和释放时有什么区别
...全文
146
1
打赏
收藏
的ASP.net下static变量和applicstion变量的区别?
两者都是全局变量,但是我想知道两都在初始化和释放时有什么区别
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
uncleAndyChen
2004-11-04
打赏
举报
回复
来源于博客园,供参考
在C#中,static变量表示该变量属于类,而不是类的实例。可以说是该类的所有实例共享一个static变量。
asp.net的页面就是一个类,我们访问一个页面。就会在服务器上实例化一个该类的实例,来响应我们的请求。
“所有实例共享一个static变量” 这就意味着,所有的客户端访问到的asp.net页面中static变量都是同一个变量。
由于我们每次访问asp.net页面都是一个全新的对象,而不是我们上一次访问的对象。所以上次页面访问时我们对页面中变量的改动都没有保留。遇到这个问题的时候,很多初学者的直觉就是将这个变量申明为static,自己在测试的时候发现还真的保留住了页面的状态。窃喜之余没有发现这又有引入了另外一个错误。因为你要的只是页面能保留住状态,而这个状态是针对一个客户端的(session的效果)。而得到的结果是只要一个客户端改变了该值所有的其他客户端都受到了影响(如同Applicatin的效果)。这种情况下,需要的极有可能就是个ViewState或者是Session。
Application与static变量
Application是通过一个集合保存所有的对象。
强类型:
Application中保存的是object,对对象的保存和使用需要作cast动作。对于值类型更需要Box&UnBox。对性能的影响较大。
而static变量是强类型的对象。
线程同步:
Application将所有的对象放到一个集合,这样对访问集合中的任何对象都会锁定这个集合。
假如有Application["A"]、Application["B"]、Application["C"],有线程访问Application["A"]其他线程不能访问Application["B"] and Application["C"]。
而static变量,可以根据他们的作用分别放在不同的class当中。这样可以并行访问不同的static变量,而不存在线程安全问题。
友情提示:
1. 对static变量,做lock时。可以通过lock(typeof(classname))来锁定该变量所在的类的类型,达到线程同步的目的。
2. 由于Aplication,static member是全局变量,而我们是在多线程服务器环境写程序,对他们的使用需要注意线程安全的问题。
Asp.net
中
static
变量
和viewstate的使用方法(谨慎)
在.Net平台下进行CS软件开发时,我们经常遇到以后还要用到某些
变量
上次修改后的值,为了简单起见,很多人都习惯用
static
来定义这些
变量
,我也是。这样非常方便,下一次调用某个函数时该
变量
仍然保存的是处理过的值,直接拿来用就可以了。 现在转入了BS软件开发,我们很自然地会沿用这种习惯。如在页面中统计某个按钮被按下的次数,先在类中OnC
lic
k事件的处理过程前定义一
static
变量
times,则每次调用该按钮的OnC
lic
k事件时,令times增1即可,非常方便: [C#]: 代码如下: …
static
int times=0; … private void Button1_C
lic
k(ob
Web程序设计--
ASP.NET
实用网站开发课后习题及答案
Web程序设计--
ASP.NET
实用网站开发课后填空题,是非题,选择题答案
asp.net
全局
变量
的实例方法
asp.net
获取全局
变量
方法 第一种,首先打开visual studio,新建web项目。 其次,在新建的web项目中,打开“web.config”文件,在此文件中添加关键字“<
app
Settings>”标记,如下图所示。 第三,在“<
app
Settings>”中添加你想要的全局
变量
“
”详细代码见下图。 最后,在项目中的“test.aspx”文件中,获取你设置的全局
变量
”string k = ConfigurationSettings.
App
Settings[“key1”]; “,详细代码见下图。 第二种方法获取全局变
asp.net
列举系统中的环境
变量
asp.net
列举系统中的环境
变量
! 很值得下载看看!资源免费,大家分享!!
ASP.NET
C# 页面间数据传递
Asp.Net
较ASP最大的优点,也是其受到越来越多程序员的欢迎的主要原因就是,
ASP.NET
为开发者提供了事件驱动的开发模式,从此程序员可以像利用可视化编程工具开发Windows应用程序一样来开发
ASP.NET
的基于Web页面的应用程序了。 一般稍微庞大的
ASP.NET
程序至少拥有二个或以上的Web页面,程序员在开发类似
ASP.NET
应用程序时一般都需要处理在多个Web页面传递数据的问题。我们知道
ASP.NET
程序中的各个Web页面类似于Windows应用程序中的Form窗体,但
ASP.NET
程序中的各Web的组织结构比起Windows应用程序中各Form窗体要显得松散许多。Windows应用程序中的各Form窗体间数据传递可以通过定义全局
变量
(Pub
lic
static
变量
)等方法来实现。而这些方法却无法用以
ASP.NET
中各Web页面数据传递,所以就必须寻找另外的方法。本文就来介绍二种可以实现
ASP.NET
中各Web页面数据传递的方法:第一种方法是使用QueryString,第二种方法是使用Session。
C#
111,119
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章