Compiler Warning (level 1) CS1060

 

Veröffentlicht: Juli 2016

Die neueste Dokumentation zu Visual Studio 2017 RC finden Sie unter Visual Studio 2017 RC Documentation (Dokumentation zu Visual Studio 2017 RC).

Verwendung des möglicherweise nicht zugewiesenen Felds "Name".Strukturinstanzvariablen ist anfänglich kein Wert zugewiesen, wenn der Struktur kein Wert zugewiesen ist.

Strukturmember werden auf ihren Standardwert initialisiert, wenn Sie sie nicht explizit initialisieren. Der Standardwert für Klassentypen und andere Referenztypen (Referenztypen) ist NULL. Falls die Klasse nicht vor dem ersten Zugriffsversuch initialisiert wurde, wird zur Laufzeit eine NullReferenceException ausgelöst. Da der Compiler nicht definitiv feststellen kann, ob der Klassenmember initialisiert wird, handelt es sich bei CS1060 um eine Warnung und nicht um einen Fehler.

So beheben Sie diesen Fehler

  1. Stellen Sie einen Konstruktor für die struct bereit, die alle ihre Member initialisiert.

Der folgende Code führt zu Warnung CS1060, da der Klassentyp U ein Member von struct S ist, jedoch niemals initialisiert wird.

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

Strukturen

Anzeigen: