Compilerfehler CS0233

„identifier“ hat keine vordefinierte Größe, weshalb „sizeof“ nur in einem unsicheren Kontext verwendet werden kann.

Ohne den Kontext unsafe kann der sizeof-Operator nur für Typen verwendet werden, deren Größe eine Kompilierzeitkonstante ist. Wenn Sie einen unsicheren Kontext verwenden, wird dieser Fehler angezeigt.

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 instead:  
        // unsafe
        // {
        //     Console.WriteLine(sizeof(S));
        // }
   }  
}