Compilerwaarschuwing (niveau 1) CS1060

Gebruik van mogelijk niet-toegewezen veld 'naam'. Struct-exemplaarvariabelen worden in eerste instantie niet toegewezen als struct niet is toegewezen.

Struct-leden worden geïnitialiseerd naar hun standaardwaarde als u ze niet expliciet initialiseert. De standaardwaarde voor klassetypen (en andere referentietypen) is null. Als de klasse niet wordt geïnitialiseerd voordat er een poging wordt uitgevoerd, wordt er een NullReferenceException gegenereerd tijdens de uitvoering. De compiler kan niet definitief bepalen of het klasselid wordt geïnitialiseerd of niet, dus CS1060 is een waarschuwing en geen fout.

Deze fout corrigeren

  1. Geef een constructor op voor de struct constructor waarmee alle leden worden geïnitialiseerd.

Opmerking

Met de volgende code wordt CS1060 gegenereerd omdat het klassetype U lid is van de struct S klasse, maar nooit wordt geïnitialiseerd.

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

Zie ook