Considérons le code suivant:
public class Test
{
public async Task Do()
{
await Task.Delay(200);
using (var disposable = new Disposable())
{
disposable.Do();
}
}
}
public class Disposable : IDisposable
{
public void Do()
{
}
public void Dispose()
{
}
}
Lorsque j'exécute une analyse de code dans Visual studio, un avertissement s'affiche:
Avertissement CA1001 Implémenter IDisposable sur Test. <Do> d__0 car il crée des membres des types IDisposable suivants: 'Disposable'.
Pourquoi est-ce que je reçois ce message? La classe jetable est correctement mise au rebut et je ne la stocke nulle part.
En outre, cela semble convenir à l’analyseur:
public class Test
{
public void Do()
{
using (var disposable = new Disposable())
{
disposable.Do();
}
}
}