日期:2014-05-18  浏览次数:20891 次

静态方法会不会导致内存递增?
static string abc()
{
  return new obj().aa();
}

这样的写法 每次程序引用 abc()的静态方法 
会不会导致内存增加。。 就是说 会不会 obj这个对象不断的存在内存中?

还望各位大牛赐教!!

------解决方案--------------------
不会,.net有自己独特的垃圾回收机制
------解决方案--------------------
不会,不然要垃圾收集器有什么用?
------解决方案--------------------
应该不会。

但是,如果aa()方法,或obj的构造函数里有问题,也有可能造成obj不能得到垃圾回收。
------解决方案--------------------
探讨

问题是 静态方法不是 一直存在内存中,知道程序运行结束才销毁的吗?

------解决方案--------------------
你先搞清楚C#和C++区别再问这个问题。你要的答案,和你要提的问题风马牛的事情。
你问的问题等于这样
while(true)
{
new obj();
}
对内存会产生什么影响。影响肯定会有的,会增加垃圾回收的负担。
------解决方案--------------------
C#中有垃圾回收机制,自动回收垃圾。
------解决方案--------------------
应该会的吧!但是我也不好乱说
------解决方案--------------------
static string abc()
{
return new obj().aa();
}

不会 但会不断地创建删除 创建删除(回收)
可以用单例模式

判断的依据是 是否有一个变量一直引用着它
------解决方案--------------------
会或不会都不对...会不会只取决于你obj对象的aa方法是怎么写的...

如果你的代码没问题就不会,有问题就会...而不管会不会都跟静态方法没有半毛钱关系...