Errore del compilatore CS0843

Aggiornamento: novembre 2007

Messaggio di errore

Il campo sottostante per la proprietà implementata automaticamente 'name' deve essere assegnato completamente prima che il controllo venga restituito al chiamante. Si consiglia di chiamare il costruttore predefinito da un inizializzatore del costruttore.
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.

Per assegnare un valore a una proprietà implementata automaticamente da un costruttore, è necessario prima richiamare il costruttore predefinito per creare l'oggetto.

Per correggere l'errore

  • Aggiungere una chiamata al costruttore predefinito in un inizializzatore del costruttore come illustrato nell'esempio seguente. Notare l'utilizzo di : this(). Per ulteriori informazioni, vedere la classe this (Riferimenti per C#).

Esempio

Nel codice seguente viene generato l'errore 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;
    }
}