영어로 읽기

다음을 통해 공유


컴파일러 오류 CS0841

'name' 지역 변수는 선언되지 않으면 사용할 수 없습니다.

변수는 사용하기 전에 선언되어야 합니다.

선언 전에 사용된 변수의 예

다음 예제에서는 CS0841을 생성합니다.

// cs0841.cs
using System;

public class Program
{
    public static void Main()
    {
        j = 5; // CS0841
        int j;
    }
}

사용 전 선언을 이동하여 오류를 수정합니다.

오류가 발생하는 줄 앞으로 변수 선언을 이동합니다.

using System;  

public class Program
{
    public static void Main()
    {
        int j;
        j = 5;
    }
}

형식을 숨기는 변수의 예

다음 예에서는 의도가 parameterMyEnum.A와 비교했습니다. 나중에 동일한 형식 이름으로 선언된 지역 변수는 이 메서드의 MyEnumMyEnum 형식을 섀도잉하므로 더 이상 enum을 참조하지 않고 선언된 지역 변수를 참조하세요.

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());
    }
}