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


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

Обновлен: Ноябрь 2007

Сообщение об ошибке

Не удалось изменить возвращаемое значение для "expression", поскольку оно не является переменной
Cannot modify the return value of 'expression' because it is not a variable

Была предпринята попытка изменения типа значения, являющегося результатом промежуточного выражения. Поскольку значение не сохранено, оно останется без изменений.

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

Пример

В следующем коде возникает ошибка CS1612.

// CS1612.cs
public struct MyStruct
{
    public int Width;
}

public class ListView
{
    public MyStruct Size
    {
        get { return new MyStruct(); }
    }
}

public class MyClass
{
    public MyClass()
    {
        ListView lvi;
        lvi = new ListView();
        lvi.Size.Width = 33;  // CS1612
        // Use this instead:
        // MyStruct temp = lvi.Size;
        // temp.Width = 33;
    }

    public static void Main() {}
}