<PackageReference Include="System.Drawing.Common" Version="10.0.0-preview.5.25277.114" />

TriState

using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; namespace System.Drawing.Printing { internal readonly struct TriState : IEquatable<TriState> { private readonly byte _value; public static TriState Default { get; } = new TriState(0); public static TriState False { get; } = new TriState(1); public static TriState True { get; } = new TriState(2); public bool IsDefault => this == Default; public bool IsFalse => this == False; public bool IsNotDefault => this != Default; public bool IsTrue => this == True; private TriState(byte value) { _value = value; } public static bool operator ==(TriState left, TriState right) { return left.Equals(right); } public static bool operator !=(TriState left, TriState right) { return !left.Equals(right); } [NullableContext(2)] public override bool Equals([NotNullWhen(true)] object o) { return Equals((TriState)o); } public bool Equals(TriState other) { return _value == other._value; } public override int GetHashCode() { return _value; } public static implicit operator TriState(bool value) { if (!value) return False; return True; } public static explicit operator bool(TriState value) { if (!value.IsDefault) return value == True; throw new InvalidCastException(System.SR.TriStateCompareError); } [NullableContext(1)] public override string ToString() { if (!(this == Default)) { if (!(this == False)) return "True"; return "False"; } return "Default"; } } }