Leer en inglés

Compartir a través de


Error del compilador CS0254

El lado derecho de una asignación de instrucción fixed puede no ser una expresión de conversión

Es posible que el lado derecho de una expresión fixed no pueda usar una conversión. Para obtener más información, vea Código no seguro y punteros (Guía de programación de C#).

El ejemplo siguiente genera la advertencia CS0254:

C#
// CS0254.cs  
// compile with: /unsafe  
class Point  
{  
   public uint x, y;  
}  
  
class FixedTest  
{  
   unsafe static void SquarePtrParam (int* p)  
   {  
      *p *= *p;  
   }  
  
   unsafe public static void Main()  
   {  
      Point pt = new Point();  
      pt.x = 5;  
      pt.y = 6;  
  
      fixed (int* p = (int*)&pt.x)   // CS0254  
      // try the following line instead  
      // fixed (uint* p = &pt.x)  
      {  
         SquarePtrParam ((int*)p);  
      }  
   }  
}