英語で読む

次の方法で共有


コンパイラ エラー CS0208

マネージド型のアドレスの取得、マネージド型のサイズの取得、またはマネージド型へのポインターの宣言が実行できません ('type')

unsafe キーワードと共に使用する場合でも、マネージド オブジェクトのアドレスの取得、マネージド オブジェクトのサイズの取得、またはマネージド型へのポインターの宣言は許可されていません。 マネージド型は、次のとおりです。

  • すべての参照型

  • フィールドまたはプロパティとして参照型を含むすべての構造体

詳細については、「アンマネージド型」を参照してください。

次の例では CS0208 が生成されます。

// CS0208.cs  
// compile with: /unsafe  
  
class myClass  
{  
    public int a = 98;  
}  
  
struct myProblemStruct  
{  
    string s;  
    float f;  
}  
  
struct myGoodStruct  
{  
    int i;  
    float f;  
}  
  
public class MyClass  
{  
    unsafe public static void Main()  
    {  
        // myClass is a class, a managed type.  
        myClass s = new myClass();
        myClass* s2 = &s;    // CS0208  
  
        // The struct contains a string, a managed type.  
        int i = sizeof(myProblemStruct); //CS0208  
  
        // The struct contains only value types.  
        i = sizeof(myGoodStruct); //OK  
  
    }  
}