Błąd kompilatora CS1914

Nie można przypisać pola statycznego "name" w inicjatorze obiektu

Inicjatory obiektów według definicji inicjują obiekty lub wystąpienia klas. Nie można ich używać do inicjalizacji pola typu static. Niezależnie od liczby wystąpień klasy, istnieje tylko jedna kopia static pola. W przypadku typów ogólnych każdy zamknięty typ ogólny ma własną kopię pól statycznych. Pola statyczne oznaczone ThreadStaticAttribute mają jedną kopię na każdy wątek.

Aby naprawić ten błąd

  1. Zmień pole na pole wystąpienia w typie lub usuń próbę zainicjowania go z inicjatora obiektu.

Przykład

Poniższy kod generuje błąd CS1914, ponieważ inicjalizator próbuje zainicjować pole TestClass.Number, które jest 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  
  
    }  
}