Прочитать на английском

Поделиться через


Ошибка компилятора CS0254

Правая часть присваивания оператора fixed не может быть выражением приведения типа

В правой части фиксированного выражения нельзя использовать приведение. Дополнительные сведения см. в разделе Небезопасный код и указатели.

Следующий пример приводит к возникновению ошибки CS0254:

// 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);  
      }  
   }  
}