컴파일러 오류 CS1918

업데이트: 2007년 11월

오류 메시지

형식이 'type'인 'name' 속성의 멤버는 값 형식이므로 개체 이니셜라이저를 사용하여 할당할 수 없습니다.
Members of property 'name' of type 'type' cannot be assigned with an object initializer because it is of a value type.

이 오류는 초기화되는 클래스 자체의 속성인 구조체 형식의 속성을 초기화하기 위해 개체 이니셜라이저를 사용하는 경우 발생합니다.

이 오류를 해결하려면

  • 개체 이니셜라이저에서 속성 필드를 완전히 초기화해야 하는 경우 구조체를 클래스 형식으로 변경합니다. 그렇지 않으면 개체 이니셜라이저를 사용하여 개체를 만든 다음 별도의 메서드를 호출하여 구조체 멤버를 초기화합니다.

예제

다음 예제에서는 CS1918 오류가 발생하는 경우를 보여 줍니다.

// cs1918.cs
public struct MyStruct
{
    public int i;

}
public class Test
{
    private MyStruct str = new MyStruct();
    public MyStruct Str
    {
        get
        {
            return str;
        }
    }
    public static int Main()
    {
        Test t = new Test { Str = { i = 1 } }; // CS1918
        return 0;
    }
}

참고 항목

참조

개체 및 컬렉션 이니셜라이저(C# 프로그래밍 가이드)