Avviso del compilatore (livello 1) CS1060

Aggiornamento: novembre 2007

Messaggio di errore

Utilizzo del campo 'nome' probabilmente non assegnato. Le variabili di istanza struct non sono assegnate inizialmente se struct non è assegnato.
Use of possibly unassigned field 'name'. Struct instance variables are initially unassigned if struct is unassigned.

Se non vengono inizializzati in modo esplicito, i membri struct vengono inizializzati al valore predefinito. Il valore predefinito per i tipi di classe e altri tipi di riferimento è Null. Se la classe non viene inizializzata prima di qualsiasi tentativo di accedervi, in fase di esecuzione verrà generata un'NullReferenceException. Il compilatore non può determinare definitivamente se il membro della classe verrà inizializzato o meno, pertanto il messaggio CS1060 è un avviso e non un errore.

Per correggere l'errore

  • Fornire un costruttore per l'oggetto struct che inizializza tutti i membri.

Esempio

Nel codice seguente viene generato l'errore CS1060 perché il tipo di classe U è un membro di struct S ma non viene mai inizializzato.

// cs1060.cs
namespace CS1060
{    
    public class U
    {
        public int i;
    }

    public struct S
    {
        public U u;
        // Add constructor to correct the error.
        //public S(int val)
        //{
        //    u = new U() { i = val };
        //}
    }
    public class Test
    {
        static void Main()
        {
            S s;
            s.u.i = 5;  // CS1060

            //Try these lines instead, and uncomment the constructor in S
            // S s = new S(0);
            // s.u.i = 5;
                 
        }
    }  
}

Vedere anche

Riferimenti

Strutture (Guida per programmatori C#)