Erreur du compilateur CS0134
Mise à jour : novembre 2007
Message d'erreur
'variable' est de type 'type'. Un champ const d'un type référence autre que string ne peut être initialisé qu'avec null.
'variable' is of type 'type'. A const field of a reference type other than string can only be initialized with null.
Une expression constante est une expression qui peut être complètement évaluée au moment de la compilation. Étant donné que la seule façon de créer une valeur non null d'un type référence consiste à appliquer l'opérateur new, et que celui-ci n'est pas autorisé dans une expression constante, la seule valeur possible pour les constantes de types référence autres que string est null.
Si vous rencontrez cette erreur en essayant de créer un tableau de chaînes const, la solution consiste à définir le tableau comme readonly et à l'initialiser dans le constructeur.
Exemple
L'exemple suivant génère l'avertissement 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";
}