Erreur du compilateur CS0841
Impossible d’utiliser la variable locale 'name' avant de la déclarer
Pour pouvoir être utilisée, une variable doit être préalablement déclarée.
L’exemple suivant génère l’erreur CS0841 :
// cs0841.cs
using System;
public class Program
{
public static void Main()
{
j = 5; // CS0841
int j;
}
}
Déplacez la déclaration de variable avant la ligne où l’erreur se produit.
using System;
public class Program
{
public static void Main()
{
int j;
j = 5;
}
}
Dans l’exemple suivant, l’intention était de comparer parameter
à MyEnum.A
. Étant donné qu’une variable locale est déclarée ultérieurement avec le même nom de type, elle dissimule le type MyEnum
et MyEnum
dans cette méthode ne fait plus référence à la enum
, mais à la variable locale déclarée.
using System;
public enum MyEnum
{
A, B, C
}
public class C
{
public void M(MyEnum parameter)
{
// error CS0841: Cannot use local variable 'MyEnum' before it is declared
if (parameter == MyEnum.A)
{
return;
}
// Change the variable to 'myEnum' to avoid shadowing the 'MyEnum' type.
// This change also aligns with the C# coding conventions.
var MyEnum = parameter;
Console.WriteLine(MyEnum.ToString());
}
}
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :