<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />

BoxedPrimitives

static class BoxedPrimitives
using System.Runtime.CompilerServices; namespace Newtonsoft.Json.Utilities { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] internal static class BoxedPrimitives { internal static readonly object BooleanTrue = true; internal static readonly object BooleanFalse = false; internal static readonly object Int32_M1 = -1; internal static readonly object Int32_0 = 0; internal static readonly object Int32_1 = 1; internal static readonly object Int32_2 = 2; internal static readonly object Int32_3 = 3; internal static readonly object Int32_4 = 4; internal static readonly object Int32_5 = 5; internal static readonly object Int32_6 = 6; internal static readonly object Int32_7 = 7; internal static readonly object Int32_8 = 8; internal static readonly object Int64_M1 = -1; internal static readonly object Int64_0 = 0; internal static readonly object Int64_1 = 1; internal static readonly object Int64_2 = 2; internal static readonly object Int64_3 = 3; internal static readonly object Int64_4 = 4; internal static readonly object Int64_5 = 5; internal static readonly object Int64_6 = 6; internal static readonly object Int64_7 = 7; internal static readonly object Int64_8 = 8; internal static readonly object DoubleNaN = NaN; internal static readonly object DoublePositiveInfinity = Infinity; internal static readonly object DoubleNegativeInfinity = -Infinity; internal static readonly object DoubleZero = 0; internal static readonly object DoubleNegativeZero = -0; internal static object Get(bool value) { if (!value) return BooleanFalse; return BooleanTrue; } internal static object Get(int value) { switch (value) { case -1: return Int32_M1; case 0: return Int32_0; case 1: return Int32_1; case 2: return Int32_2; case 3: return Int32_3; case 4: return Int32_4; case 5: return Int32_5; case 6: return Int32_6; case 7: return Int32_7; case 8: return Int32_8; default: return value; } } internal static object Get(long value) { long num = value - -1; if ((ulong)num <= 9) { switch (num) { case 0: return Int64_M1; case 1: return Int64_0; case 2: return Int64_1; case 3: return Int64_2; case 4: return Int64_3; case 5: return Int64_4; case 6: return Int64_5; case 7: return Int64_6; case 8: return Int64_7; case 9: return Int64_8; } } return value; } internal static object Get(decimal value) { return value; } internal static object Get(double value) { if (value == 0) { if (!double.IsNegativeInfinity(1 / value)) return DoubleZero; return DoubleNegativeZero; } if (double.IsInfinity(value)) { if (!double.IsPositiveInfinity(value)) return DoubleNegativeInfinity; return DoublePositiveInfinity; } if (double.IsNaN(value)) return DoubleNaN; return value; } } }