Compilerfout CS0844
Kan geen lokale variabele 'naam' gebruiken voordat deze wordt gedeclareerd. De declaratie van de lokale variabele verbergt het veld 'naam'.
Een id kan slechts één betekenis hebben in een bepaald blok. Lokale variabelen met dezelfde naam als klassevelden kunnen het veld verbergen door een tweede betekenis voor de id in te voeren. Daarom genereert de compiler een fout wanneer u naar een klasseveld in een methode verwijst en vervolgens een lokale variabele declareert met dezelfde naam.
Gebruik
this.num
dit om te verwijzen naar het klasseveld.Geef de lokale variabele een andere naam dan het klasseveld.
Met de volgende code wordt CS0844 gegenereerd:
class Test
{
int num;
public void TestMethod()
{
num = 5; // CS0844
int num = 6;
}
public static int Main()
{
return 1;
}
}
class Test
{
int num;
public void TestMethod()
{
this.num = 5; // Error fixed.
int num = 6;
}
public static int Main()
{
return 1;
}
}
class Test
{
int num;
public void TestMethod()
{
num = 5; // Error fixed.
int num2 = 6;
}
public static int Main()
{
return 1;
}
}
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven: