怎样释放静态(static)的数据成员,使它不再占用内存?

smartcreater 2004-08-26 04:39:31
static数据成员有时很有用,我不很明白static数据类型的生存期到底在什么时候结束,好像是应用程序集的,我不希望它总占用着内存space

下面的Demo
class demo
{
public static string myStr;
public static DataTable myTable;
public static Object myObj;
//...
public void myFunction()
{//...}
}
=================================
我怎样才能使demo.myStr;demo.myTable...这样的static成员释放内存呢?

demo.myStr = null; demo.myTable = null; 能不能做到???
...全文
393 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
test7979 2004-08-26
  • 打赏
  • 举报
回复
to triout

使用时可以这样
lock(...)
{
if(myTable == null) myTable = new ...
}


楼主如果要节省空间,可以考虑使用WeakReference
u0u0 2004-08-26
  • 打赏
  • 举报
回复
本牛说的对
greystar 2004-08-26
  • 打赏
  • 举报
回复
static变量的是属于类阶层的,不是实例对象能控制的。只有内存当中没有此类的任何实例时才会释放
yingshis 2004-08-26
  • 打赏
  • 举报
回复
笨牛有道理。
smartcreater 2004-08-26
  • 打赏
  • 举报
回复
ASP.NET中的APPLICATION变量对象好像也是static类型的!
penning 2004-08-26
  • 打赏
  • 举报
回复
同意笨牛的说法
triout 2004-08-26
  • 打赏
  • 举报
回复
当你不想用的时候直接设置该值为null就行,不过如果你要用的时候,又怎么判断是否该恢复数据和恢复什么数据呢?

对于这样的东西,既然时static类型的,那么就不要考虑要释放的问题,如果要考虑释放,就不要使用static,而使用cache变量、APPLICATION变量、SESSION变量等。
test7979 2004-08-26
  • 打赏
  • 举报
回复
可以的,但这么点内存有什么用呢?

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧