C# 对象(对另一个全局对象的相同引用)在需要处置的方法中?
我有一个如下的代码,从一个方法中我得到一个对象(只是从全局对象中复制,没有新的),然后执行操作。 关闭子窗体时,我会处理全局对象。然而,在方法级别,我不处理本地对象。是否也需要这样处理/将null设置为本地对象?对于这种情况,最佳实践应该是什么 请注意,这个对象引用了“AxShockWaveLashPlayer”对象,这就是为什么我也有点担心本地对象的原因C# 对象(对另一个全局对象的相同引用)在需要处置的方法中?,c#,C#,我有一个如下的代码,从一个方法中我得到一个对象(只是从全局对象中复制,没有新的),然后执行操作。 关闭子窗体时,我会处理全局对象。然而,在方法级别,我不处理本地对象。是否也需要这样处理/将null设置为本地对象?对于这种情况,最佳实践应该是什么 请注意,这个对象引用了“AxShockWaveLashPlayer”对象,这就是为什么我也有点担心本地对象的原因 class Test { Method() { var obj = GetContainerObject() //co
class Test
{
Method()
{
var obj = GetContainerObject() //copying object
var proxy = obj as ExternalIntClass //copying object
proxy.call("Name", param);
**//After use should i dispose obj and proxy local objects ?**
}
private object GetContainerObject()
{
switch(condition)
case 1 :
return proxy1;
case 2:
return proxy2;
}
Dispose()
{
proxy1 = null;
proxy2 = null;
}
}
什么是“全局对象”?将成员设置为
null
通常不是对象(应该)做的事情。请参阅“”“除了检查GetContainerObject
的行为文档外,此处无法给出一般答案。如果它返回新对象并将这些对象的所有权移交给调用者,那么是的,调用者必须处理这些对象(假设它们实现了IDisposable
)。如果它返回对现有对象的引用,并且没有移交所有权,那么不,调用方不应该处置这些对象,即使它们实现了IDisposable
@UweKeim by global object,我的意思是对象具有类的作用域,并且本地对象在方法中。@LasseV.Karlsen“GetContainerObject”只返回proxy1的引用。它不会装入新对象(无新操作员)。但是,该对象具有COM引用,因此我想对此加倍确定。如果我在Method()中使用block,这有什么害处吗?什么是“全局对象”?将成员设置为null
通常不是对象(应该)做的事情。请参阅“”“除了检查GetContainerObject
的行为文档外,此处无法给出一般答案。如果它返回新对象并将这些对象的所有权移交给调用者,那么是的,调用者必须处理这些对象(假设它们实现了IDisposable
)。如果它返回对现有对象的引用,并且没有移交所有权,那么不,调用方不应该处置这些对象,即使它们实现了IDisposable
@UweKeim by global object,我的意思是对象具有类的作用域,并且本地对象在方法中。@LasseV.Karlsen“GetContainerObject”只返回proxy1的引用。它不会装入新对象(无新操作员)。但是,该对象具有COM引用,因此我想对此加倍确定。如果在方法()中使用block,这有什么害处吗?