英語で読む

次の方法で共有


コンパイラ エラー CS0254

固定ステートメントの代入式の右辺はキャスト式ではない可能性があります。

固定 式の右側はキャストを使用しない場合があります。 詳細については、「アンセーフ コードとポインター」を参照してください。

次の例では 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);  
      }  
   }  
}