static public Int64 ToInt64(byte[] buffer, int offset, int count) { long value; if (TryParseInt64(buffer, offset, count, out value)) return value; return ToInt64(ToString(buffer, offset, count)); }
public long ToLong() { ValueHandleType type = _type; if (type == ValueHandleType.Zero) { return(0); } if (type == ValueHandleType.One) { return(1); } if (type == ValueHandleType.Int8) { return(GetInt8()); } if (type == ValueHandleType.Int16) { return(GetInt16()); } if (type == ValueHandleType.Int32) { return(GetInt32()); } if (type == ValueHandleType.Int64) { return(GetInt64()); } if (type == ValueHandleType.UInt64) { ulong value = GetUInt64(); if (value <= long.MaxValue) { return((long)value); } } if (type == ValueHandleType.UTF8) { return(XmlConverter.ToInt64(_bufferReader.Buffer, _offset, _length)); } return(XmlConverter.ToInt64(GetString())); }