long NextLong() { Next(); if (io.IsUnsigned()) { return((long)io.ValueUnsigned); } else if (io.IsSigned()) { return(io.ValueSigned); } else if (io.IsUnsigned64()) { return((long)io.ValueUnsigned64); } else if (io.IsSigned64()) { return(io.ValueSigned64); } else { throw new Error(ErrorCode.TYPE_MISMATCH, "Got type: " + io.Type); } }