Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
- 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
}
}