Compiler Error CS0233

"Bezeichner" hat keine vordefinierte Größe, daher kann "sizeof" nur in einem ungeschützten Kontext verwendet werden. (Benutzen Sie System.Runtime.InteropServices.Marshal.SizeOf.)

Der Operator sizeof kann nur für Typen verwendet werden, die Kompilierzeitkonstanten sind. Wenn Sie diese Fehlermeldung erhalten, prüfen Sie, ob die Größe des Bezeichners zur Kompilierzeit bestimmt werden kann. Wenn das nicht der Fall ist, verwenden Sie SizeOf an Stelle von sizeof.

Beispiel

Im folgenden Beispiel wird 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));  
   }  
}