Wie in diese Antwort erläutert und In diesem MSDN-Artikel suchen Sie möglicherweise anstelle von BitField
das kann ein bisschen nervig sein, um zu 2 32 zu rechnen, du kannst das auch tun:
%Vor%Und Sie können auf Ihre Flags zugreifen, wie Sie es in C erwarten würden:
%Vor% und C # in .NET 4 wirft einen Bone mit der Methode HasFlag()
.
Leider gibt es so etwas in C # nicht. Die nächste Sache ist die Anwendung eines StructLayout-Attributs und die Verwendung des FieldOffset-Attributs für Felder. Der Feld-Offset liegt jedoch in Bytes , nicht in Bits. Hier ist ein Beispiel:
%Vor%Aber es ist nicht das gleiche wie die Funktionalität, die Sie wollen.
Wenn Sie eine Bitsequenz zu einer Struktur dekodieren müssen, müssen Sie manuellen Code schreiben (zum Beispiel mit Klassen wie MemoryStream oder BitConverter).
Suchen Sie nach dem Attribut FieldOffset
? Siehe hier: FieldOffsetAttribute-Klasse
Tags und Links c c# bit-manipulation code-conversion