在静态方法中实例化的对象会发生什么?

时间:2014-08-10 22:26:54

标签: c#

我有一个看起来像这样的静态对象:

public static class MyStaticObject
{    
   public static void SomeMethod()
   {
       MyObject TheObject = new MyObject();    

       //some long runnning tasks
   }
}

正如您所看到的,当SomeMethod()运行时,它会创建MyObject。在创建它的方法返回后,此实例化对象会发生什么?如果在响应先前的方法调用时已经执行了SomeMethod(),是否会出现并发问题,或者每个方法调用是否实例化了自己的MyObject

感谢。

1 个答案:

答案 0 :(得分:3)

TheObject只是一个局部变量,无论事件是否为静态,它的行为方式都相同。

因此,在方法返回后,对象(如果没有更多的引用)就可以为垃圾收集器做好准备。

如果是递归,只会创建另一个局部变量。

如果您有C/C++背景,那么TheObject 不是 staticC/C++个变量。

相关问题