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

Consulte também

Referência

Structs (guia de programação C#)