Ошибка компилятора 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() {}
}