Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A statikus helyi függvények nem tartalmazhatnak "erre" vagy "alapra" mutató hivatkozást.
A static helyi függvény kulcsszója megakadályozza, hogy a helyi függvény hozzáférjen a szülőpéldány-metódusok vagy példányok mezőinek állapotához.
Ez a hiba azt jelzi, hogy a helyi függvény hozzáfér az adott típusú példány tagjaihoz.
Példa
A következő minta a CS8422-t hozza létre:
public class C
{
private int counter = 1;
public void IncreaseCounter()
{
static void localFunc(int addition)
{
this.counter += addition; // CS8422 due to reference to 'this'
base.ToString(); // CS8422 due to reference to 'base'
// Also for implicit 'this' or 'base' references:
counter += addition; // CS8422 due to implicit reference to 'this'
ToString(); // CS8422 due to implicit reference to 'base'
}
localFunc(10);
Console.WriteLine(this.counter);
}
}
A hiba kijavítása
Ha a helyi függvény célja egy szülő állapotának rögzítése és módosítása, akkor nem szabad statikusnak minősíteni. A példánytagok hozzáférését is eltávolíthatja.
public class C
{
private int counter = 1;
public void IncreaseCounter()
{
void localFunc(int addition)
{
counter += addition;
ToString();
}
localFunc(10);
Console.WriteLine(this.counter);
}
}
public class Program
{
public void Main()
{
C c = new();
c.IncreaseCounter();
}
}
// Output:
// 11