Compilerwarnung (Stufe 1) CS1060

Verwendung des möglicherweise nicht zugewiesenen Felds 'Name'. Als erstes wird die Zuweisung von Strukturinstanzvariablen aufgehoben, wenn die Struktur nicht zugewiesen ist.

Strukturmember werden mit ihrem Standardwert initialisiert, wenn Sie sie nicht explizit initialisieren. Der Standardwert für Klassentypen (und andere Verweistypen) ist NULL. Wenn die Klasse nicht initialisiert wird, bevor versucht wird, auf sie zuzugreifen, wird zur Laufzeit eine NullReferenceException ausgelöst. Der Compiler kann nicht definitiv bestimmen, ob der Klassenmember initialisiert wird, weshalb CS1060 eine Warnung und kein Fehler ist.

So beheben Sie diesen Fehler

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

Beispiel

Der folgende Code generiert CS1060, da der Klassentyp U ein Member der struct S ist, aber nicht initialisiert wurde.

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

Siehe auch