Compilerfehler CS0233

„identifier“ weist keine vordefinierte Größe auf, weshalb „sizeof“ nur in einem ungeschützten Kontext verwendet werden kann (verwenden Sie ggf. System.Runtime.InteropServices.Marshal.SizeOf).

Der Operator sizeof kann nur für Typen verwendet werden, die Kompilierzeitkonstanten sind. Wenn Sie diesen Fehler erhalten, achten Sie darauf, dass die Größe des Bezeichners zur Kompilierzeit bestimmt werden kann. Wenn dies nicht der Fall ist, verwenden Sie <xref:System.Runtime.InteropServices.Marshal.SizeOf%2A> statt sizeof.

Beispiel

Im folgenden Beispiel wird der Fehler CS0233 generiert:

// 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));  
   }  
}