src/Token/JsonNumber.cs

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;

namespace Rapidity.Json
{
    public class JsonNumber : JsonToken, IEquatable<JsonNumber>
    {
        private string _value;

        public override JsonValueType ValueType => JsonValueType.Number;

        public JsonNumber() => _value = "0";

        public JsonNumber(string value)
        {
            if (value == null) throw new ArgumentNullException(nameof(value));
            if (!double.TryParse(value, out double val))
                throw new JsonException($"无效的JSON Number值:{value}");
            _value = value;
        }

        public JsonNumber(int value) => _value = value.ToString();

        public JsonNumber(short value) => _value = value.ToString();

        public JsonNumber(long value) => _value = value.ToString();

        public JsonNumber(ulong value) => _value = value.ToString();

        public JsonNumber(float value) => _value = value.ToString();

        public JsonNumber(double value) => _value = value.ToString();

        public JsonNumber(decimal value) => _value = value.ToString();

        public bool TryGetByte(out byte value) => byte.TryParse(_value, out value);

        public bool TryGetSByte(out sbyte value) => sbyte.TryParse(_value, out value);

        public bool TryGetInt(out int value) => int.TryParse(_value, out value);

        public bool TryGetUInt(out uint value) => uint.TryParse(_value, out value);

        public bool TryGetShort(out short value) => short.TryParse(_value, out value);

        public bool TryGetUShort(out ushort value) => ushort.TryParse(_value, out value);

        public bool TryGetLong(out long value) => long.TryParse(_value, out value);

        public bool TryGetULong(out ulong value) => ulong.TryParse(_value, out value);

        public bool TryGetFloat(out float value) => float.TryParse(_value, out value);

        public bool TryGetDouble(out double value) => double.TryParse(_value, out value);

        public bool TryGetDecimal(out decimal value) => decimal.TryParse(_value, out value);

        public override string ToString() => _value;

        public bool Equals(JsonNumber other) => other != null && this._value.Equals(other._value);

后面还有 5 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。