Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Statisches Feld 'Name' kann in einem Objektinitialisierer nicht zugewiesen werden.
Objektinitialisierer nach Definition initialisieren Objekte oder Instanzen von Klassen. Sie können nicht zum Initialisieren eines static Felds eines Typs verwendet werden. Unabhängig davon, wie viele Instanzen einer Klasse erstellt werden, gibt es nur eine Kopie eines static Felds. Bei generischen Typen verfügt jeder geschlossene generische Typ über eine eigene Kopie statischer Felder. Statische Felder, die mit ThreadStaticAttribute gekennzeichnet sind, haben jeweils eine Kopie pro Thread.
So beheben Sie diesen Fehler
- Ändern Sie das Feld entweder in ein Instanzfeld des Typs, oder entfernen Sie den Versuch, es aus dem Objektinitialisierer zu initialisieren.
Beispiel
Der folgende Code generiert CS1914, da der Initialisierer versucht, das TestClass.Number Feld zu initialisieren, was lautet static:
// cs1914.cs
using System.Linq;
public class TestClass
{
public string Message { get; set; }
public static int Number { get; set; }
}
class Test
{
static void Main()
{
TestClass b = new TestClass() { Message = "Hello", Number = "555-1212" }; // CS1914
}
}