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;
}
}
}