컴파일러 오류 CS0134

'variable'의 형식이 'type'입니다.참조 형식이 문자열이 아닌 const 필드는 null로만 초기화할 수 있습니다.

constant-expression은 컴파일 타임에 완전하게 계산될 수 있는 식입니다. null이 아닌 참조 형식 값을 만들 수 있는 유일한 방법은 new 연산자를 적용하는 것이지만, 상수 식에는 new 연산자를 사용할 수 없으므로 문자열을 제외한 참조 형식의 상수 값은 null만 될 수 있습니다.

const 문자열 배열을 만들려고 할 때 이 오류가 발생할 경우 배열을 읽기 전용으로 만들고 생성자에서 배열을 초기화하면 오류를 해결할 수 있습니다.

예제

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

// CS0134.cs
// compile with: /target:library
class MyTest {} 

class MyClass
{
   const MyTest test = new MyTest();   // CS0134

   //OK
   const MyTest test2 = null;
   const System.String test3 = "test";
}