Compilerwarnung (Stufe 1) CS1060
Aktualisiert: November 2007
Fehlermeldung
Verwendung des möglicherweise nicht zugewiesenen Felds "Name". Strukturinstanzvariablen ist anfänglich kein Wert zugewiesen, wenn der Struktur kein Wert zugewiesen ist.
Use of possibly unassigned field 'name'. Struct instance variables are initially unassigned if struct is unassigned.
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
- Stellen Sie einen Konstruktor für die struct bereit, die alle ihre Member initialisiert.
Beispiel
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;
}
}
}