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.
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() { }
}
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven: