Compilerfehler CS1918
Member der name-Eigenschaft vom Typ "Typ" können nicht mit einem Objektinitialisierer zugewiesen werden, da es sich um einen Werttyp handelt.
Dieser Fehler tritt auf, wenn Sie versuchen, einen Objektinitialisierer zur Initialisierung der Eigenschaften eines Strukturtyps zu verwenden, der selbst eine Eigenschaft der initialisierten Klasse ist.
So beheben Sie diesen Fehler
- Wenn Sie die Felder der Eigenschaft im Objektinitialisierer vollständig initialisieren müssen, ändern Sie die Struktur in einen Klassentyp. Andernfalls initialisieren Sie die Strukturmember in einem separaten Methodenaufruf, nachdem Sie das Objekt mithilfe des Objektinitialisierers erstellt haben.
Beispiel
Im folgenden Beispiel wird CS1918 generiert:
// cs1918.cs
public struct MyStruct
{
public int i;
}
public class Test
{
private MyStruct str = new MyStruct();
public MyStruct Str
{
get
{
return str;
}
}
public static int Main()
{
Test t = new Test { Str = { i = 1 } }; // CS1918
return 0;
}
}
Siehe auch
Zusammenarbeit auf GitHub
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.
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