繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> 禁止在页面中使用static变量

禁止在页面中使用static变量

2007-09-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:今天,项目出现了问题,从表现看像是串Session,我们的Session变量使用的并不多。而且这个现象能够必然的重现。因为是别的组的程序我也没怎么去查。后来他来问我,Session没有问题,是static变量出了问题。stati...
关键字:变量 页面 static

今天,项目出现了问题,从表现看像是串Session,我们的Session变量使用的并不多。而且这个现象能够必然的重现。因为是别的组的程序我也没怎么去查。后来他来问我,Session没有问题,是static变量出了问题。static变量!!!我一下就敏感起来。然后去看他的代码。My God!一堆的static变量。其实都应该用ViewState来保存的。

我以前给项目组的人解释 ViewState、Session、Application、static Member的时候说“不要在页面使用static变量,除非你自己确实清楚你在干什么。static变量和Application类似,而不是和Session一样。”。我现在的要求是“禁止在页面中使用static变量”。说得很绝对。

强调“禁止在页面中使用static变量”,出于以下原因。

一、 我怕还有人自以为很清楚,结果滥用static变量。而这种理解错误的后果很大。

二、 这是学习ASP.net的人,很多人都会犯的错误(在csdn上老看到与此相关的问题)。

三、 C#语言的书,在讲授static Member的时候,都使用Console或则winform程序。给学习者在ASP.net中的使用造成了误解。

四、 禁止使用static变量,合适的地方就会使用Application对象。而这个东东一般是在ASP.net或者ASP的书中提到,对他理解错误的人不多。

五、 ASP.net的实际应用中static变量的作用极少,而对于极少几个可能会使用的地方,一般提供单件类更合适。

BTW:

我对ViewState的使用不怎么规定,但我自己一般会提供property来包装ViewState的使用。

使用Session我决定提供一个SessionHelper类来包装所有使用到的Session,禁止在页面中直接使用Session["dfdf"]这种方式。因为多人的工程会导致Session命名的冲突,这样要求一来容易查到冲突的命名,二来对冲突也容易修改。关键是Session也不是什么好东西,要有节制的使用。这样利于管理整个项目中使用的Session。贯彻这个要求也很容易,对项目中的文件搜一下'Session',就能很容易的找出违反规定的代码:D。

对于Application我也是提供包装,跟Session的使用要求相似。

责任编辑:admin
相关文章