Ler em inglês

Partilhar via


Erro de compilador CS0200

Propriedade ou indexador 'propriedade' não pode ser atribuída a -- é somente leitura

Foi feita uma tentativa de atribuir um valor a uma propriedade, mas a propriedade não tem um acessador definido ou a atribuição estava fora do construtor. Resolva o erro adicionando um acessador definido. Para obter mais informações, consulte Como declarar e usar propriedades de leitura-gravação.

Exemplos

O exemplo a seguir gera CS0200:

// 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
    }
}  

O exemplo a seguir usa propriedades implementadas automaticamente e inicializadores de objeto e ainda gera CS0200:

// 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
        };
    }
}

Para atribuir a uma propriedade ou indexador 'propriedade' que é somente leitura, adicione um acessador de conjunto ou atribua o valor no construtor do objeto.

public class Example
{
    int I { get; }

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