Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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.
Deze fout corrigeren
Gebruik
this.numdit om te verwijzen naar het klasseveld.Geef de lokale variabele een andere naam dan het klasseveld.
Opmerking
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;
}
}
Corrigeer de fout door this.num te verwijzen naar het klasseveld
class Test
{
int num;
public void TestMethod()
{
this.num = 5; // Error fixed.
int num = 6;
}
public static int Main()
{
return 1;
}
}
Corrigeer de fout door de lokale variabele een andere naam te geven dan het klasseveld
class Test
{
int num;
public void TestMethod()
{
num = 5; // Error fixed.
int num2 = 6;
}
public static int Main()
{
return 1;
}
}