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
- 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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für