我在我的Web应用程序项目中使用了大量的静态变量.现在我从一些文章中读到它是整个项目的全局变量,静态变量中的数据可以被其他用户共享或覆盖(我的意思是它不是用户特定的或特定于会话的).
那么通常的编程习惯是不在常规Web应用程序开发中使用静态变量吗?
是否完全没有使用静态变量,就像GOTO语句/关键字一样,这意味着使用它们有很多限制,最好不要使用它们?那么在什么情况下我们使用静态关键字?
那么我有这个要求,特定变量必须在特定的webform.aspx.cs中初始化一次,并且范围必须仅限于那个特定的.aspx.cs和已经登录的特定用户?我如何满足这一要求?如果可能,任何人都可以用代码说明这一点吗
Dar*_*rov 11
我个人尽量避免使用静态变量.它们使代码难以进行单元测试,并且由于并发访问和竞争条件而导致细微错误.
就您的要求而言,您可以使用将变量存储为ViewState中控件的属性.如果它是您尝试存储的用户特定数据,则可以使用会话状态.
我相信你对静态的解释是错误的.
使用static修饰符声明一个静态成员,该成员属于该类型本身而不是特定对象.
换句话说,对于该类的所有特定实例,此成员只有一个实例.
只要正确使用静态变量,静态变量就没有任何问题.我相信你将静态与全局变量混合在一起.可以从任何地方访问全局变量.这是不可取的,因为知道设置该变量的状态的时间和地点是复杂的.此外,这使得单元测试更加困难.
这个Programmers.SE问题可能对你很感兴趣.
| 归档时间: |
|
| 查看次数: |
5528 次 |
| 最近记录: |