Lire en anglais

Partager via


Erreur du compilateur CS1917

Les membres d’un champ en lecture seule 'name' de type 'struct name' ne peuvent pas être assignés à l’aide d’un initialiseur d’objet, car il s’agit d’un type valeur.

Les champs en lecture seule qui sont des types valeur peuvent uniquement être assignés dans un constructeur.

Pour corriger cette erreur

  • Remplacez le struct par un type de classe.

  • Initialisez le struct avec un constructeur.

Exemple

Le code suivant génère l’erreur CS1917 :

// cs1917.cs  
class CS1917  
{  
    public struct TestStruct  
    {  
        public int i;  
    }  
    public class C  
    {  
        public readonly TestStruct str = new TestStruct();  
        public static int Main()  
        {  
            C c = new C { str = { i = 1 } }; // CS1917  
            return 0;  
        }  
    }  
}