3.1 Union-artige Strukturen erstellen

Problem

Sie müssen einen Datentyp erstellen, der sich wie der Union-Typ von C++ verhält. Ein Union-Typ ist in der Regel vor allem in Interop-Szenarios nützlich, wenn Unmanaged Code einen Union-Typ erwartet oder zurückliefert. Wir empfehlen Ihnen, sie in anderen Fällen nicht zu verwenden.

Lösung

Verwenden Sie eine Struktur, und markieren Sie sie mit dem Attribut StructLayout (wobei Sie die Layout-Art LayoutKind.Explicit im Konstrukor angeben). Zusätzlich dazu markieren Sie alle Felder der Struktur mit dem Attribut FieldOffset. Die folgende Struktur definiert eine Union, in der ein einzelner vorzeichenbehafteter numerischer Wert gespeichert werden kann:

using System.Runtime.InteropServices; [StructLayoutAttribute(LayoutKind.Explicit)] ...

Get C# Kochbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.