Skip to content

Instantly share code, notes, and snippets.

@pkuyo
pkuyo / EnumNumber.cs
Created October 14, 2025 15:33
EnumNumber<TEnum>, C++-style bit ops for C# enums
[StructLayout(LayoutKind.Sequential)]
public readonly struct EnumNumber<TEnum> : IEquatable<EnumNumber<TEnum>>
where TEnum : unmanaged, Enum
{
private readonly TEnum _value;
public TEnum Value => _value;
public EnumNumber(TEnum value) => _value = value;
private static readonly int _size = Unsafe.SizeOf<TEnum>();
private static readonly bool _signed = IsSignedCore();