c# - .NET 公共(public)静态变量的 "lifespan"?

标签 c# asp.net variables static public

我做了一些实验。在来自 Login.aspx 按钮的 LoginButton_Click() 事件中,我有一段代码执行如下操作:

MyClass.MyPublicStaticString = LoginNameTextBox.Text;

登录后通过 FormsAuthentication 进入 Default.aspx。在 Default.aspx 上,我在 Page_Load() 上有一个代码,如下所示:

Label1.Text = MyClass.MyPublicStaticString.ToString();

等待几分钟后,即使 我的登录超时到期,Label1.Text 也变空了。

这里发生了什么?

最佳答案

静态字段(除非 [ThreadStatic])是每个应用程序域一个实例,这意味着:所有 请求共享相同 值。在 Web 应用程序中使用 static 时,您需要格外小心。如果有疑问:不要。

重新生命周期;应用域;它们在分配给静态字段时不会被收集,并且如果应用程序池在 IIS 中回收,它们将过期。

关于c# - .NET 公共(public)静态变量的 "lifespan"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5261680/

相关文章:

swift - for循环变量名使用swift

javascript - ASP.NET AJAX 部分回发、动态 JavaScript 值

c# - 创建新任务会产生后台线程还是线程池线程

c# - ASP.NET MVC 局部 View 中 Ajax 形式的文件上传不起作用

c# - 如何在类属性中分配值类

jquery - 每四个元素后与 hr 进行画廊设计

arrays - 从 Bash 数组中删除一个元素

c# - C# 中的 "var"是否类似于 C 中的 "size_t"?

c# - “does not contain a static '主要' method”错误

c# - Android 单声道 : ListView Delete Items NotifyDataSet Changed