System.Linq.Dynamic.ExpressionParser.ParseNumber C# (CSharp) Method

ParseNumber() private static method

private static ParseNumber ( string text, Type type ) : object
text string
type Type
return object
		private static object ParseNumber(string text, Type type)
		{
			switch (Type.GetTypeCode(GetNonNullableType(type)))
			{
				case TypeCode.SByte:
					sbyte sb;
					if (sbyte.TryParse(text, out sb) || sbyte.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out sb)) return sb;
					break;
				case TypeCode.Byte:
					byte b;
					if (byte.TryParse(text, out b) || byte.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out b)) return b;
					break;
				case TypeCode.Int16:
					short s;
					if (short.TryParse(text, out s) || short.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out s)) return s;
					break;
				case TypeCode.UInt16:
					ushort us;
					if (ushort.TryParse(text, out us) || ushort.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out us)) return us;
					break;
				case TypeCode.Int32:
					int i;
					if (int.TryParse(text, out i) || int.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out i)) return i;
					break;
				case TypeCode.UInt32:
					uint ui;
					if (uint.TryParse(text, out ui) || uint.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out ui)) return ui;
					break;
				case TypeCode.Int64:
					long l;
					if (long.TryParse(text, out l) || long.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out l)) return l;
					break;
				case TypeCode.UInt64:
					ulong ul;
					if (ulong.TryParse(text, out ul) || ulong.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out ul)) return ul;
					break;
				case TypeCode.Single:
					float f;
					if (float.TryParse(text, out f) || float.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out f)) return f;
					break;
				case TypeCode.Double:
					double d;
					if (double.TryParse(text, out d) || double.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out d)) return d;
					break;
				case TypeCode.Decimal:
					decimal e;
					if (decimal.TryParse(text, out e) || decimal.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out e)) return e;
					break;
			}
			return null;
		}
ExpressionParser