Errore di compilazione CS0134

Aggiornamento: novembre 2007

Messaggio di errore

'variabile' è di tipo 'tipo'. Un campo const di un tipo di riferimento diverso da una stringa può essere inizializzato solo con valori null.
'variable' is of type 'type'. A const field of a reference type other than string can only be initialized with null.

Un'espressione costante è un'espressione che può essere valutata per intero in fase di compilazione. Poiché l'unico modo per creare un valore non null di un tipo di riferimento consiste nell'applicare un nuovo operatore e poiché il nuovo operatore non è consentito in un'espressione costante, l'unico valore possibile per le costanti dei tipi di riferimento diversi da string è null.

Se si verifica questo errore quando si tenta di creare una matrice di stringhe const, la soluzione consiste nel creare la matrice readonly e inizializzarla nel costruttore.

Esempio

Il seguente esempio genera l'avviso 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";
}