Partager via


Erreur du compilateur CS1917

Mise à jour : novembre 2007

Message d'erreur

Les membres du champ en lecture seule 'nom' de type 'nom du struct' ne peuvent pas être assignés avec un initialiseur d'objet car ce dernier est d'un type valeur.
Members of read-only field 'name' of type 'struct name' cannot be assigned with an object initializer because it is of a value type.

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

Pour corriger cette erreur

  • Modifiez le struct en un type classe.

  • Initialisez le struct avec un constructeur.

Exemple

Le code suivant génère 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;
        }
    }
}