Compilerfehler CS0134Compiler Error CS0134

„Variable“ ist vom Typ „Typ“.'variable' is of type 'type'. Ein Konstantenfeld mit einem anderen Referenztyp als „String“ kann nur mit NULL initialisiert werden.A const field of a reference type other than string can only be initialized with null.

Ein konstanter Ausdruck ist ein Ausdruck, der während der Kompilierung vollständig ausgewertet werden kann.A constant-expression is an expression that can be fully evaluated at compile-time. Da die einzige Möglichkeit, einen Wert ungleich NULL aus einem Referenztyp zu erstellen, das Anwenden des neuen Operators ist, und da der neue Operator in einem konstanten Ausdruck nicht zulässig ist, ist der einzig mögliche Wert für Konstanten von Referenztypen, die keine Zeichenfolgen sind, NULL.Because the only way to create a non-null value of a reference-type is to apply the new operator, and because the new operator is not permitted in a constant-expression, the only possible value for constants of reference-types other than string is null.

Wenn dieser Fehler auftritt, während Sie versuchen, ein const-Zeichenfolgenarray zu erstellen, müssen Sie das Array auf readonly festlegen und es im Konstruktor initialisieren.If you encounter this error by trying to create a const string array, the solution is to make the array readonly, and initialize it in the constructor.

BeispielExample

Im folgenden Beispiel wird der Fehler CS0134 generiert.The following example generates 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";  
}