Aviso do compilador (nível 1) CS1060

Uso de campo 'name' possivelmente não atribuído. As variáveis de instância struct são inicialmente não atribuídas se struct não for atribuído.

Os membros de struct são inicializados em seus valores padrão se você não inicializá-los explicitamente. O valor padrão de tipos de classe (e outros tipos de referência) é nulo. Se a classe não for inicializada antes de qualquer tentativa de acessá-la, um NullReferenceException será gerado em tempo de execução. O compilador não pode determinar definitivamente se o membro da classe será inicializado ou não, por isso, o CS1060 será um aviso e não um erro.

Para corrigir este erro

  1. Fornecer um construtor para o struct que inicializa todos os seus membros.

Exemplo

O código a seguir gera o erro CS1060 porque o tipo de classe U é um membro de struct S, mas nunca é 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;  
  
        }  
    }
}  

Confira também