Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Nelze použít místní proměnnou name, než je deklarována.
Proměnná musí být deklarována, než se použije.
Příklad proměnné použité před deklarací
Následující příklad vygeneruje CS0841:
// cs0841.cs
using System;
public class Program
{
public static void Main()
{
j = 5; // CS0841
int j;
}
}
Oprava chyby přesunutím deklarace před použitím
Přesuňte deklaraci proměnné před řádek, kde k chybě dochází.
using System;
public class Program
{
public static void Main()
{
int j;
j = 5;
}
}
Příklad proměnné stínující typ
V následujícím příkladu byl záměr porovnávání parameter s MyEnum.A. Vzhledem k tomu, že místní proměnná deklarovaná později se stejným názvem typu, stínuje typ MyEnum a MyEnum v této metodě již odkazuje na , enumale odkazuje na deklarovanou místní proměnnou.
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());
}
}