Je suis en train de revenir XmlNodeReader à une autre fonction, mais obtenir avertissement CA2000retour objet jetable et obtenir avertissement CA2000
XmlNodeReader obj =new XmlNodeReader(section);
return ser.method(obj);
Si j'utilise le code suivant, il fonctionnera correctement? L'avertissement est supprimé mais pas sûr si cela affectera la logique ou non.
XmlNodeReader tempObj =new XmlNodeReader(section);
XmlNodeReader retObj=null;
retObj = tempObj;
tempObj.Dispose();
return ser.method(retObj);
Eh bien, nous avons aucune idée de ce 'ser.method' fait, mais le passage d'un objet disposé en «méthode» semble être une mauvaise idée pour moi . –
CA2000 vous donne parfois des résultats faussement positifs, mais est * habituellement * une indication de quelque chose d'étrange qui n'est pas si mauvais. Vous devez décider si la zone du code qui construit l'objet le possède également, ou si vous transmettez la propriété à celui qui reçoit l'objet. Une fois que vous avez décidé que vous pouvez regarder comment se débarrasser de l'avertissement. –
Notez que dans certains cas, si vous créez une "méthode usine", vous pouvez vous débarrasser de l'avertissement en nommant simplement la méthode mieux, essayez "Get" vs "Create" comme préfixe pour le nom de la méthode, voir si l'un d'entre eux aide. –