aviso do compilador (nível 1) CS1060
Mensagem de erro
Uso de campo possivelmente não atribuído 'nome'.Variáveis de instância struct são não atribuídas inicialmente se struct é não atribuído.
Os membros de struct são inicializados para seus valores padrão se explicitamente não inicializá-los.O valor padrão para tipos de classe (e outros tipos de referência) são nulo.Se a classe não está inicializada antes de qualquer tentativa de acessá-lo, um NullReferenceException será lançada no tempo de execução. O compilador não pode determinar definitivamente se membro da classe será inicializado ou não, e então CS1060 é um aviso e não um erro.
Para corrigir este erro
- Fornecer um construtor para o struct que inicializa todos os seus membros.
Exemplo
O código a seguir gera CS1060 porque a classe digite U é um membro das struct S mas nunca foi inicializado.
// 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;
}
}
}