コンパイラ エラー CS0233

更新 : 2007 年 11 月

エラー メッセージ

'識別子' には定義済みの型が指定されていないため、sizeof は unsafe コンテキスト でのみ使用できます (System.Runtime.InteropServices.Marshal.SizeOf の使用をお勧めします)

sizeof 演算子は、コンパイル時の定数である型に対してのみ使用できます。このエラーが発生した場合は、コンパイル時にサイズを取得することが可能な識別子であるかどうかを確認してください。そうでない場合は、sizeof ではなく、SizeOf を使用します。

使用例

次の例では、CS0233 エラーが生成されます。

// CS0233.cs
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential)]
public struct S
{
    public int a;
}

public class MyClass
{
    public static void Main()
    {
        S myS = new S();
        Console.WriteLine(sizeof(S));   // CS0233
        // Try the following line instead:
        // Console.WriteLine(Marshal.SizeOf(myS));
   }
}