Błąd kompilatora CS0841
Nie można użyć zmiennej lokalnej "name", zanim zostanie zadeklarowana.
Przed jego zastosowaniem należy zadeklarować zmienną.
Poniższy przykład generuje CS0841:
// cs0841.cs
using System;
public class Program
{
public static void Main()
{
j = 5; // CS0841
int j;
}
}
Przenieś deklarację zmiennej przed wierszem, w którym występuje błąd.
using System;
public class Program
{
public static void Main()
{
int j;
j = 5;
}
}
W poniższym przykładzie intencja była porównywana parameter
z MyEnum.A
. Ponieważ zmienna lokalna zadeklarowana później o tej samej nazwie typu, w tle typ MyEnum
i MyEnum
w tej metodzie nie odwołuje się już do zmiennej enum
, ale odwołuje się do zadeklarowanej zmiennej lokalnej.
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());
}
}
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: