Прочитать на английском

Поделиться через


Ошибка компилятора CS0200

Свойство или индексатор "свойство" не может быть назначено - только для чтения

Предпринята попытка назначить значение свойству, но свойство не имеет метода доступа к набору или назначение было за пределами конструктора. Устраните ошибку, добавив метод доступа set. Дополнительные сведения см. в разделе "Объявление и использование свойств чтения и записи".

Примеры

Следующий пример приводит к возникновению ошибки 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
    }
}  

В следующем примере используются автоматически реализованные свойства и инициализаторы объектов и по-прежнему создаются 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
        };
    }
}

Чтобы назначить свойству или индексатору свойство, доступное только для чтения, добавьте метод доступа к набору или назначьте значение в конструкторе объекта.

public class Example
{
    int I { get; }

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