CS0233 de erro do compilador

Mensagem de erro

'identificador' não tem um dimensionar predefinido, por isso sizeof só pode ser usado em um contexto sem segurança (considere o uso de sistema.tempo de execução.InteropServices.realizar marshaling.SizeOf)

The sizeof operador só pode ser usado para tipos que são constantes de time de compilar.Se você estiver recebendo esse erro, certifique-se de que o dimensionar do identificador pode ser determinado em tempo de compilar.Se ele não pode usar SizeOf em vez de sizeof.

Exemplo

O exemplo a seguir gera 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));
   }
}