Compilerfehler CS1917

Aktualisiert: November 2007

Fehlermeldung

Member des schreibgeschützten Felds 'Name' vom Typ 'Strukturname' können nicht mit einem Objektinitialisierer zugewiesen werden, da es sich um einen Werttyp handelt.
Members of read-only field 'name' of type 'struct name' cannot be assigned with an object initializer because it is of a value type.

Schreibgeschützte Felder, die Werttypen darstellen, können nur in einem Konstruktor zugewiesen werden.

So beheben Sie diesen Fehler

  • Ändern Sie die Struktur in einen Klassentyp.

  • Initialisieren Sie die Struktur mit einem Konstruktor.

Beispiel

Durch den folgenden Code wird der Fehler CS1917 ausgelöst:

// cs1917.cs
class CS1917
{
    public struct TestStruct
    {
        public int i;
    }
    public class C
    {
        public readonly TestStruct str = new TestStruct();
        public static int Main()
        {
            C c = new C { str = { i = 1 } }; // CS1917
            return 0;
        }
    }
}