Lezen in het Engels

Delen via


Compilerwaarschuwing (niveau 2) CS0728

Mogelijk onjuiste toewijzing aan lokale 'variabele' dat het argument is voor een gebruiks- of vergrendelingsinstructie. De aanroep Verwijderen of ontgrendelen vindt plaats op de oorspronkelijke waarde van het lokale bestand.

Er zijn verschillende scenario's waarbij using of lock blokken leiden tot een tijdelijk lek van resources. Hier volgt één voorbeeld:

thisType f = null;

using (f)

{

f = new thisType();

...

}

In dit geval wordt de oorspronkelijke waarde, zoals null, van de variabele thisType verwijderd wanneer het using blok is uitgevoerd, maar het thisType object dat in het blok is gemaakt, niet, hoewel het uiteindelijk afval wordt verzameld.

Gebruik het volgende formulier om deze fout op te lossen:

using (thisType f = new thisType())

{

...

}

In dit geval wordt het zojuist toegewezen thisType object verwijderd.

Opmerking

Met de volgende code wordt waarschuwing CS0728 gegenereerd.

// CS0728.cs  
  
using System;  
public class ValidBase : IDisposable  
{  
    public void Dispose() {  }  
}  
  
public class Logger  
{  
    public static void dummy()  
    {  
        ValidBase vb = null;  
        using (vb)
        {  
            vb = null;  // CS0728  
        }  
        vb = null;  
    }  
    public static void Main() { }  
}