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