次の方法で共有


値型フィールドはポータブルでなければなりません

更新 : 2007 年 11 月

TypeName

ValueTypeFieldsShouldBePortable

CheckId

CA1900

カテゴリ

Microsoft.Portability

互換性に影響する変更点

あり – フィールドがアセンブリの外部で参照できる場合 なし – フィールドがアセンブリの外部で参照できない場合

原因

この規則は、明示的なレイアウトによって宣言された構造体が、64 ビット プラットフォームでアンマネージ コードにマーシャリングされるときに、適切にアライメントされるかどうかを確認します。IA-64 は、アライメントされていないメモリのアクセスを許可しません。この違反が修正されない場合、プロセスはクラッシュします。

規則の説明

明示的なレイアウトを使用する構造体に、正しくアライメントされていないフィールドが含まれていると、64 ビット プラットフォームでクラッシュが発生します。

違反の修正方法

8 バイト未満のすべてのフィールドは、それぞれのサイズの倍数のオフセットを持つ必要があります。また、8 バイト以上のフィールドは、8 の倍数のオフセットを持つ必要があります。状況に応じて、LayoutKind.Explicit の代わりに LayoutKind.Sequential を使用して修正することもできます。

警告を抑制する状況

この警告は、エラーで生成された場合にのみ抑制します。