Share via


컴파일러 오류 CS0188

업데이트: 2007년 11월

오류 메시지

모든 필드에 값을 할당하기 전에는 'this' 개체를 사용할 수 없습니다.
The 'this' object cannot be used before all of its fields are assigned to

생성자가 struct 안에 있는 메서드를 호출하려면 먼저 struct 안에 있는 모든 필드에 값을 할당해야 합니다.

구조체 생성자의 속성을 초기화하려고 할 때 이 오류가 발생할 경우 생성자 매개 변수를 변경하여 속성 자체가 아니라 지원 필드를 지정하면 오류를 해결할 수 있습니다. 자동으로 구현된 속성에는 지원 필드가 없기 때문에 이 속성을 생성자에서 초기화할 수 있는 방법이 없으므로 구조체에서 자동으로 구현된 속성을 사용해서는 안 됩니다.

자세한 내용은 구조체 사용(C# 프로그래밍 가이드)을 참조하십시오.

예제

다음 샘플에서는 CS0188 오류가 발생하는 경우를 보여 줍니다.

// CS0188.cs
// compile with: /t:library
namespace MyNamespace
{
    class MyClass
    {
        struct S
        {
            public int a;

            void Foo()
            {
            }

            S(int i)
            {
                // a = i;
                Foo();  // CS0188
            }
        }
        public static void Main()
        { }

    }
}

참고 항목

참조

구조체(C# 프로그래밍 가이드)

자동으로 구현된 속성(C# 프로그래밍 가이드)