Kompilatorvarning (nivå 1) CS1060

Användning av eventuellt otilldelat fält "namn". Struct-instansvariabler tilldelas ursprungligen inte om struct inte har tilldelats.

Struct-medlemmar initieras till sitt standardvärde om du inte uttryckligen initierar dem. Standardvärdet för klasstyper (och andra referenstyper) är null. Om klassen inte initieras innan ett försök att komma åt den genereras en NullReferenceException vid körning. Kompilatorn kan inte definitivt avgöra om klassmedlemmen kommer att initieras eller inte, så CS1060 är en varning och inte ett fel.

Så här åtgärdar du det här felet

  1. Ange en konstruktor för struct som initierar alla dess medlemmar.

Exempel

Följande kod genererar CS1060 eftersom klasstypen U är medlem i struct S men aldrig initieras.

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

Se även