Error del compilador CS1612
Actualización: noviembre 2007
Mensaje de error
No se puede modificar el valor devuelto de 'expresión' porque no es una variable
Cannot modify the return value of 'expression' because it is not a variable
Se intentó modificar un tipo de valor que es el resultado de una expresión intermedia. Debido a que dicho valor no es persistente, queda sin modificar.
Para resolver este error, almacene el resultado de la expresión en un valor intermedio o utilice un tipo de referencia para la expresión intermedia.
Ejemplo
En el código siguiente se genera el error 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() {}
}