Olvasás angol nyelven

Megosztás a következőn keresztül:


Fordító figyelmeztetés (2. szint) CS0728

Lehetséges, hogy helytelen hozzárendelés a helyi "változóhoz", amely egy használat- vagy zárolási utasítás argumentuma. Az Elidegenítési hívás vagy zárolás feloldása a helyi érték eredeti értékén történik.

Számos olyan forgatókönyv van, ahol using vagy lock blokkok miatt ideiglenesen kiszivárognak az erőforrások. Íme egy példa:

thisType f = null;

using (f)

{

f = new thisType();

...

}

Ebben az esetben a változó thisType eredeti értéke (például null) törlődik, amikor a using blokk befejeződik, de a thisType blokkban létrehozott objektum nem lesz, bár végül szemét lesz összegyűjtve.

A hiba elhárításához használja az alábbi űrlapot:

using (thisType f = new thisType())

{

...

}

Ebben az esetben az újonnan lefoglalt thisType objektum törlődik.

Példa

Az alábbi kód a CS0728 figyelmeztetést fogja generálni.

C#
// 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() { }  
}