CS1612 de erro do compilador

Mensagem de erro

Não é possível modificar o valor retornado de 'expressão' porque ele não é uma variável

Houve uma tentativa de modificar um tipo de valor foi resultado de uma expressão intermediário.Como o valor não é persistente, o valor será inalterado.

Para resolver esse erro, armazenar o resultado da expressão em um valor intermediário ou use um tipo de referência para a expressão intermediária.

Exemplo

O código a seguir gera erro 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() {}
}