Advertencia del compilador (nivel 1) CS1060

Actualización: noviembre 2007

Mensaje de error

Uso de un campo 'nombre' posiblemente no asignado Las variables de instancia de estructura están inicialmente sin asignar si la estructura está sin asignar.
Use of possibly unassigned field 'name'. Struct instance variables are initially unassigned if struct is unassigned.

Los miembros de estructura se inicializan con su valor predeterminado si no se inicializan explícitamente. El valor predeterminado de los tipos de clase (y otros tipos de referencia) es null. Si la clase no se inicializa antes de cualquier intento para tener acceso a ésta, se producirá la excepción NullReferenceException en tiempo de ejecución. El compilador no puede determinar definitivamente si el miembro de clase se inicializará o no, por lo que CS1060 es una advertencia y no un error.

Para corregir este error

  • Proporcione un constructor para struct que inicialice todos sus miembros.

Ejemplo

El código siguiente genera la advertencia CS1060 porque el tipo de clase U es un miembro de struct S pero no se inicializa nunca.

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

Vea también

Referencia

Estructuras (Guía de programación de C#)