コード例 #1
0
 protected T Visit(JToken token)
 {
     return(token switch
     {
         JObject jObject => Visit(jObject),
         JProperty jProperty => Visit(jProperty),
         JArray jArray => Visit(jArray),
         DoubleToken doubleToken => Visit(doubleToken),
         StringToken stringToken => Visit(stringToken),
         BooleanToken booleanToken => Visit(booleanToken),
         NullToken nullToken => Visit(nullToken),
         _ => default
     });
コード例 #2
0
ファイル: StringExtension.cs プロジェクト: tankyx/actools
 public static bool TryParseNumberToken(this string value, out Token numberToken)
 {
     if (value.Contains("."))
     {
         var splitValue = value.Split('.', 'e', 'E');
         if (splitValue.Length > 1 && splitValue[1].Length > 6)
         {
             if (!double.TryParse(value, out var d))
             {
                 numberToken = null;
                 return(false);
             }
             numberToken = new DoubleToken(d);
             return(true);
         }
         if (!float.TryParse(value, out var f))
         {
             numberToken = null;
             return(false);
         }
         numberToken = new FloatToken(f);
         return(true);
     }
     if (!long.TryParse(value, out var l))
     {
         numberToken = null;
         return(false);
     }
     if (l >= int.MinValue && l <= int.MaxValue)
     {
         numberToken = new IntegerToken((int)l);
         return(true);
     }
     numberToken = new LongToken(l);
     return(true);
 }
コード例 #3
0
 public override string Visit(DoubleToken token)
 {
     return(token.ToString());
 }