共用方式為


實值型別的欄位應該是可移植的

更新:2007 年 11 月

型別名稱

ValueTypeFieldsShouldBePortable

CheckId

CA1900

分類

Microsoft.Portability

中斷變更

中斷 - 如果可以在組件 (Assembly) 外部看見欄位。非中斷:如果不能在組件外部看見欄位。

原因

在 64 位元的平台上封送處理 Unmanaged 程式碼時,此規則會檢查宣告為明確配置的結構是否會正確地配置。IA-64 不允許存取未配置的記憶體,而且如果無法修正此項違規,則此處理序 (Process) 會造成當機。

規則描述

包含明確配置不當欄位的結構會造成 64 位元平台當機。

如何修正違規

小於 8 位元組的所有欄位必須具有是其大小之倍數的位移 (Offset),而欄位大小需為 8 位元組或以上,且必須具有 8 之倍數的位移。另一個方案是在合理的情況下,使用 LayoutKind.Sequential 取代 LayoutKind.Explicit。

隱藏警告的時機

這則警告只有在發生錯誤時才能隱藏。