Erreur du compilateur CS0843
Mise à jour : novembre 2007
Message d'erreur
Le champ de stockage pour la propriété implémentée automatiquement 'nom' doit être totalement assigné avant que le contrôle soit retourné à l'appelant. Si possible, appelez le constructeur par défaut à partir d'un initialiseur de constructeur.
Backing field for automatically implemented property 'name' must be fully assigned before control is returned to the caller. Consider calling the default constructor from a constructor initializer.
Pour assigner une valeur à une propriété implémentée automatiquement d'un constructeur, vous devez d'abord appeler le constructeur par défaut pour créer l'objet.
Pour corriger cette erreur
- Ajoutez un appel au constructeur par défaut dans un initialiseur de constructeur comme indiqué dans l'exemple suivant. Notez l'utilisation de : this(). Pour plus d'informations, consultez this (Référence C#).
Exemple
Le code suivant génère CS0843 :
// cs0843.cs
struct S
{
public int AIProp { get; set; }
public S(int i){} //CS0843
// Try the following lines instead.
// public S(int i) : this()
// {
// AIProp = i;
// }
}
class Test
{
static int Main()
{
return 1;
}
}