Erreur du compilateur CS1918
Les membres de la propriété 'name' de type 'type' ne peuvent pas être assignés avec un initialiseur d’objet car il s’agit d’un type valeur.
Cette erreur se produit quand vous essayez d’utiliser un initialiseur d’objet pour initialiser les propriétés d’un type struct qui est lui-même une propriété de la classe en cours d’initialisation.
- Si vous devez initialiser complètement les champs de la propriété dans l’initialiseur d’objet, remplacez le struct par un type de classe. Sinon, initialisez les membres du struct dans un appel de méthode distinct après avoir créé l’objet à l’aide de l’initialiseur d’objet.
L’exemple suivant génère l’erreur CS1918 :
// cs1918.cs
public struct MyStruct
{
public int i;
}
public class Test
{
private MyStruct str = new MyStruct();
public MyStruct Str
{
get
{
return str;
}
}
public static int Main()
{
Test t = new Test { Str = { i = 1 } }; // CS1918
return 0;
}
}
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :