Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
No se puede modificar el resultado de una conversión unboxing
El resultado de una conversión unboxing es una variable temporal. El compilador evita que se modifiquen estas variables porque cualquier modificación desaparecería al desaparecer la variable temporal. Para corregir esto, declare una nueva variable de tipo de valor para almacenar la expresión intermedia y asigne el resultado de la conversión unboxing a esa variable.
El código siguiente genera el error CS0455.
// CS0445.CS
class UnboxingTest
{
public static void Main()
{
Point p;
p.x = 1;
p.y = 2;
object obj = p;
// The following line generates CS0445, because the result
// of unboxing obj is a temporary variable.
((Point)obj).x = 2;
// The following lines resolve the error.
// Store the result of the unboxing conversion in p2.
Point p2;
p2 = (Point)obj;
// Then you can modify the unboxed value.
p2.x = 2;
}
}
struct Point
{
public int x, y;
}
Comentarios de .NET
.NET es un proyecto de código abierto. Selecciona un vínculo para proporcionar comentarios: