我试图XmlNodeReader对象返回到另一个函数,但得到CA2000警告回到一次性对象和获取CA2000警告
XmlNodeReader obj =new XmlNodeReader(section);
return ser.method(obj);
如果我使用下面的代码,将它正常工作?警告被抑制,但不确定它是否会影响逻辑。
XmlNodeReader tempObj =new XmlNodeReader(section);
XmlNodeReader retObj=null;
retObj = tempObj;
tempObj.Dispose();
return ser.method(retObj);
嗯,我们不知道是什么'ser.method'做,但不得传递处理方法似乎对我来说是个坏主意。 –
CA2000有时会给你误报,但是*通常是*表示某些看起来很奇怪的东西,所以它并不全是坏的。您需要确定构造对象的代码的区域是否也拥有它,或者您是否将所有权交给了接收该对象的所有者。一旦你决定你可以研究如何摆脱警告。 –
请注意,在某些情况下,如果您创建的是“工厂方法”,则可以通过简单地命名该方法来摆脱警告,请尝试“Get”与“Create”作为方法名称的前缀,请参阅如果有任何帮助。 –