设为首页
加入收藏
站内地图
旧版入口
当前位置:首页 > 站长学院 > 网络编程 > ASP.NET

禁止在页面中使用static变量

作者:佚名 出处:网络转载 时间:05-28 点击:

内容载入中...
您的支持我们的动力 华腾联合        今天,项目出现了问题,从表现看像是串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的使用要求相似。

收藏本文:
】【打印页面】【推荐给朋友】【关闭窗口

站长学院

推荐信息