Leggere in inglese

Condividi tramite


Errore del compilatore CS0200

Non è possibile assegnare un valore alla proprietà o all'indicizzatore 'property' perché è di sola lettura

È stato effettuato un tentativo di assegnare un valore a una proprietà, ma la proprietà non dispone di una funzione di accesso impostata o l'assegnazione era all'esterno del costruttore. Risolvere l'errore aggiungendo una funzione di accesso set. Per altre informazioni, vedere Come dichiarare e usare le proprietà di lettura/scrittura.

Esempi

L'esempio seguente genera l'errore CS0200:

C#
// CS0200.cs
public class Example
{
    private int _mi;
    int I
    {
        get
        {
            return _mi;
        }
        // uncomment the set accessor and declaration for _mi
        /*
        set
        {
            _mi = value;
        }
        */
    }

    public static void Main()
    {  
        Example example = new Example();
        example.I = 9;   // CS0200
    }
}  

L'esempio seguente usa proprietà e inizializzatori di oggetti implementati automaticamente e genera comunque CS0200:

C#
// CS0200.cs
public class Example
{
    int I
    {
        get;
        // uncomment the set accessor and declaration
        //set;
    }

    public static void Main()
    {  
        var example = new Example
        {
            I = 9   // CS0200
        };
    }
}

Per assegnare a una proprietà o un indicizzatore 'property' di sola lettura, aggiungere una funzione di accesso impostata o assegnare il valore nel costruttore dell'oggetto.

C#
public class Example
{
    int I { get; }

    public Example()
    {
        I = -7;
    }
}