Je travaille dans un code Winforms en ce moment, et je suis venu à travers des lignes comme ceci plusieurs fois:Dois-je utiliser une instruction using/disposer si l'objet n'est pas réellement utilisé dans le code?
...
System.Diagnostics.Process.Start(someFileName);
...
... qui débute juste à côté un processus sur la machine cliente, et oublie complètement à ce sujet . Process.Start(someFileName)
renvoie un objet de type Process
, qui implémente IDisposable
, mais le code ne fait rien avec l'objet, car l'idée était simplement de déclencher le processus et de l'oublier.
Dans ce cas, l'objet Process
doit-il être éliminé, si nous ne le gardons pas du tout en mémoire? Quelque chose comme:
using (System.Diagnostics.Process.Start(someFileName) { }
ou
var process = System.Diagnostics.Process.Start(someFileName);
process.Dispose();
'System.Diagnostics.Process.Start (someFileName) .Close();' –
Si elle implémente IDisposable puis le disposer, en utilisant un() {} est la façon canonique de le faire. –
La réponse courte est: Oui, vous devez disposer. Et peu importe laquelle des deux variantes de code vous utilisez (en supposant que vous ne mettez pas de code dans le bloc using) –