Errore del compilatore CS1914

Aggiornamento: novembre 2007

Messaggio di errore

Impossibile assegnare il campo statico 'nome' in un inizializzatore di oggetti
Static field 'name' cannot be assigned in an object initializer

Gli inizializzatori di oggetti per definizione inizializzano oggetti, o istanze, di classi. Non è possibile utilizzarli per inizializzare il campo static di un tipo. Indipendentemente dal numero di istanze di una classe create, esisterà sempre un'unica copia di un campo static.

Per correggere l'errore

  • Impostare il campo su un campo di istanza nel tipo o rimuovere il tentativo di inizializzarlo dall'inizializzatore di oggetto.

Esempio

Nel codice seguente viene generato l'errore CS1914 perché l'inizializzatore tenta di inizializzare il campo TestClass.Number che è 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
        
    }
}